'Early Z'에 해당되는 글 1건

  1. 2010.03.19 Early Z

아래에서 퍼옴
http://eppengine.com/zbxe/programmig/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 )

Posted by 노을삼킨별
,