반응형

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

+ Recent posts