OIT(Order-Independent Transparency, 반투명 폴리곤을 소팅없이 그리기) 방법 중 하나인 Depth Peeling을 살펴보고 단점인 메모리 사용량을 극복한 Reverse Depth Peeling을 소개하는 챕터.
Anti-Aliasing 기술 중 전화면 supersampling은 퍼포먼스 때문에 피하고 폴리곤 가장자리만 Anti-Aliasing을 해주는 multisampling을 많이 사용한다. 여기서 multisampling만 해준다면 폴리곤 내부는 Anti-Aliasing이 되지 않기 때문에 눈에 확 띄는 스펙큘러 같은 high-frequency 컴포넌트는 시점에 따라 어른거리는 현상이 나타난다. 밉맵을 쓰는 이유와 같다. 그래서 가장자리는 multisampling을 해주고 어른거리는 문제가 생기는 부분만 supersampling을 해주자는 내용.
사용하는 포스트 이펙트(PostEffect)가 증가하고 있는데, 증가하는 만큼 관리하기가 어렵다. 확장이 손쉽고 다양한 요구 사항에 유연하게 적용 가능한 프레임워크(framework)를 제시한다.
DirectX9에서는 input, output 텍스쳐(texture)가 같을 수 없어서 텍스쳐 두 장을 input, ouput으로 쓰게 되는데 포스트 이펙트가 여러 개이면 번갈아 가며 SetRenderTarget을 한다. 이 짓의 연속이다. 이런 때 중간에 있는 포스트 이펙트를 disable 시키려면 코드가 지저분해지는데, 이 챕터에서 소개한 프레임워크에서는 이펙트의 input, output 텍스쳐를 IO 그룹으로 래핑하고 disable 시키면 자신의 IO 그룹을 다음 이펙트에 넘겨주는 식으로 깔끔하게 구현했다.
전체 소스코드도 책에 첨부된 시디에 있어 포스트 이펙트 엔진 설계에 힌트를 얻을 수 있다.