Z Pre-pass

개요

  • Depth Test에 의해서 무시되는 Fragment의 수를 최대로 하자.
    • 아무것도 그리지 않는 것이 최고의 최적화니까!
  • 2번의 렌더링이 필요하다.
    • Z-Buffer에 Depth만 쓰는 것 한번
    • Z-Test를 하면서 제대로 그리는 것 한번

방식

  1. 카메라에서 가까운 곳부터 먼 순서로 불투명한 Geometry를 정렬한다.
    • 가까운 것부터 그리는 것이 Early Z rejection을 최대화 할 수 있으니까
    • 당연히 이런 작업들은 CPU에서 처리할 수 있다.
    • 이 기법과는 상관없지만 반투명한 Geometry는 먼 곳부터 가까운 순서로 그려야 한다.
  2. 첫번째 Rendering Pass
    • 불투명한 Geometry를 Z-Buffer에 그린다.
    • null pixel shader를 사용하여 pixel 연산은 하지 않도록 한다.
  3. 두번째 Rendering Pass
    • Z-Write를 끈 채로 불투명한 Geometry를 다시 그린다.
    • 원래 하고자 하는 모든 Shading을 수행한다.
    • Z-Test에 의해서 무시되는 pixel이 많아지면서 per-pixel 부하가 많이 줄어든다.

참고

https://software.intel.com/en-us/articles/early-z-rejection-sample

results matching ""

    No results matching ""