http://eppengine.com/zbxe/3103
early z test 는 pixel 단위의 culling 방식이다.
간단히 이야기 하면, 각 픽셀을 연산이 되기전에 깊이테스트를 통해서 보이지 않는 pixel 에 대한 연산은
적절히 skip 하기위한 pixel culling 방식이라고 이해하면 된다.
하지만 Pipe Line 단계에서 Z test 는 pixel shader (fragment shader) 다음에 이루어진다.
그렇다면, pipe 라인상에서는 z-test 가 pixel 연산 다음에 이루어 지는데, 어떻게 앞에서 처리 할 것 인가?
결론부터 이야기 하면 하드웨어 단계에서 지원이 되어야만 가능한 부분이다.
예를들어 Nvidia Geforce 8000 대의 gpu 의 경우 특정 상황에서는 자동적으로 early z 기능이 활성화 된다.
Use
다음의 순서를 따른다.
1. 컬러쓰기를 disable 하고 write depth 만 enable 한다.
(이럴경우 nvidia 의 fx 이상급 gpu 에서는 double speed z write 가 활성화 된다.)
2. depth 를 clear 하지 않은 상태에서 ( depth buffer 를 clear 하지 않는다는 의미 ) 정상적인 rendering 을 실시한다.
(이때 depth test 연산자를 equal 로 설정한다. )
3. 1번 단계에서 기록된 depth buffer 값은 2번 단계를 거치면서 깊이비교에서 실패한 pixel 들을 자동적으로 연산에서 제외 시키게 된다.
( early z )
'그래픽스(Graphics) > DirectX9~12' 카테고리의 다른 글
키프레임 애니메이션 (0) | 2016.08.06 |
---|---|
밉맵 디테일 높이기 (0) | 2013.06.10 |
Direct3D 9 에 래스터라이즈 규칙 (0) | 2013.05.10 |
x파일에 대한 pdf (0) | 2013.03.11 |
NormalMapGenerator (0) | 2013.02.23 |