알파 테스트
알파 테스트는 반투명이라는 개념이 없으며 기준 값보다 그리려는 픽셀의 알파 값이 더 클 경우에만 그린다.
깊이 테스트 또한 현재 픽셀의 깊이보다 큰 값은 그리지 않음으로써 가까이 있는 물체가 먼 물체를 가리는 것을
표현하는데, 그 원리와 비슷하다. 깊이 테스트보다 알파 테스트가 우선되어 알파 테스트를 통과한 픽셀들이
깊이 테스트를 하게 된다.
알파 블렌딩
알파 블렌딩은 알파 테스트처럼 기준값에 따라 표현하고 말고를 딱딱 나누는게 아니라 색을 섞는다는 개념이다.
반투명한 유리 뒤에 물체가 있다면 유리에 그 물체의 색이 희미하게 보일 것이다. 이런 것들은 알파 블렌딩으로만
표현이 가능하다. 반투명한 유리를 blend 객체, 그 뒤 물체를 nonblend 객체라고 할 때 nonblend 객체를 먼저 그리고
blend 객체를 그려야 한다. 왜냐하면 blend객체는 nonblend객체 색까지 감안해서 계산해야 하기 때문이다. 만약 blend
객체끼리만, 반투명한 유리들끼리만 렌더링을 한다고 하면 렌더링 순서가 중요하다. 카메라에서 멀리 떨어진 객체부터
렌더링하도록 알파 소팅(2d에서 y축 소팅과 비슷한 원리)을 해야 한다.
알파 테스트 vs 알파 블렌딩
렌더링할 때는 알파 테스트와 블렌딩 중 하나만 사용할 수 있다. 둘 다 사용하면 알파 블렌딩을 할 때 뒤에 물체와 색을 섞는게 아니라 백버퍼와 색을 섞어버려서 백버퍼의 색깔이 보여지게 된다. 알파 테스트가 알파 소팅을 필요로 하지 않기 때문에 퍼포먼스가 좋아 많이 사용되지만, 반투명한 색을 표현하는 데에는 알파 블렌딩이 사용된다.
'Today I Learned' 카테고리의 다른 글
| 23.06.07 - SetSamplerState, MipMap(밉맵), 높이 맵 (0) | 2023.06.07 |
|---|---|
| 23.05.30 - 직교 투영 행렬 만들기 (0) | 2023.05.30 |
| 23. 05. 25 - 정점 그리기 (0) | 2023.05.25 |
| 23. 05. 24 - 좌표 변환 (0) | 2023.05.24 |
| 23. 05. 19 - 프로토타입, map 사용시 주의점 (0) | 2023.05.19 |