4. Deferred Light Pre-pass Inferred
Shading rendering Lighting
• 렌더링에 필요한 정보를 G-Buffer에 저장
– Depth, normal, 반사율(reflecxibility) 등
– Memory와 Cost의 trade-off
• 최종 렌더링을 Per-pixel 처리로 대체
– Lighting Cost와 scene complexity 가 무관
5. Deferred Light Pre-pass Inferred
Shading rendering Lighting
• Material정보를 G-Buf에 저장하지 않음
• 최종 합성 전 light-pass를 두고 L-buffer 에
lighting 처리 정보만을 따로 저장
• Obj를 다시 그리면서(2nd pass) 고유 material
정보와 L-buffer 정보를 합성
• H/W anti-aliasing 지원
6. Deferred Light Pre-pass Inferred
Shading rendering Lighting
• G-buf, L-buf 를 저해상도로 생성(대역폭 향
상)
• Up-sampling 시 Discontinuity를 해결하기
위해 depth, Obj ID를 이용해서 경계선을
필터링(DSF필터링)
• 투명한 오브젝트 처리 가능
12. |Multi-resolution rendering pass
1. 저해상도 R-buf에 depth를 1로 채움(z-test : LessEqual)
2. 버퍼를 렌더링할 직사각형 메시의 Z좌표를
Zi = 0.1 – i * 0.1 (i : 현재 버퍼의 index) 로 지정
3. 공간 근접도(spatial proximity) 비교하여 depth를 저장
* spatial proximity
: 주변 픽셀과의 material ID, depth,
normal 등을 비교(threshold 사용)하여 측정
13. |Multi-resolution rendering pass
3. 공간 근접도가 일정 threshold를 넘으면 depth
를 기록하지 않고 기존의 depth를 남겨 상위 해
상도에서 기록하도록 유도
4. z-test를 equal로 변경 후 lighting 값을 R-buf 에
적용
14. |Multi-resolution rendering pass
5. R-buf를 위 단계 해상도 버퍼로 복사
- Bilinear / Bi-cubic 필터링 적용
6. 위의 1 – 5 과정을 해상도를 올려가며 반복
-> 화면의 각 픽셀이 적합한 해상도의 R-buf 로
shading 됨
18. |Composite pass
• 전체 해상도 R-Buf의 값과 G-buf에 미리 저
장한 값들을 이용하여 최종 shading 수행
• MSAA를 위해 geometry를 다시 그릴 수도
있음 (lighting pre-pass처럼)
19. |마무리
• Low frequency에서의 렌더링 cost 절약
• Diffuse interreflection, subsurface light
diffusion을 위한 GPU기반 빛 클러스터링
기법(light pyramid)들에 적용 가능
– 테스트 결과, 1.5 – 2.0배 까지 성능 향상