Inferred Lighting

2,978 views
2,857 views

Published on

0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,978
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
49
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

Inferred Lighting

  1. 1. Inferred Lighting:Fast Dynamic lighting and shadows for opaque and translucent objects<br />original paper by Scott Kircher, Alan Lawrance<br />http://cafe.naver.com/shader<br />임용균 (guardin@naver.com)<br />
  2. 2. Forward Rendering<br />많은 동적 라이팅(dynamic lighting)<br />라이트가 많아질 수록 성능이 급격히 낮아짐<br />다양한 재질(material)<br />알파 오브젝트의 라이팅과 그림자<br />하드웨어 MSAA<br />
  3. 3. Deferred Shading<br />Geometry Pass<br />조명 계산에 필요한 속성들(Color, Depth, Normal, Specular)을 프레임 버퍼와 동일한 크기의 텍스쳐(G-Buffer)에 렌더링<br />Light Pass<br />각각의 조명에 대해 영향 받는 픽셀들을 라이팅하여 프레임 버퍼에 누적<br />실제로 보이는 픽셀만 라이팅<br />
  4. 4. Deferred Shading<br />
  5. 5. Deferred Shading<br />많은 동적 라이팅(dynamic lighting)<br />높은 성능<br />다양한 재질(material) 표현이 어려움<br />알파 오브젝트의 라이팅과 그림자<br />하드웨어 MSAA 지원을 받지 못함*<br />
  6. 6. Light Pre-Pass Rendering<br />Geometry Pass<br />조명 계산에 필요한 속성들(Depth, Normal)을 최소화하여 프레임 버퍼와 동일한 크기의 텍스쳐(G-Buffer)에 렌더링<br />
  7. 7. Light Pre-Pass Rendering<br />Light Pass<br />각각의 조명에 대해 영향 받는 픽셀들을 라이팅하여 프레임 버퍼와 동일한 크기의 텍스쳐(L-Buffer)에 렌더링<br />
  8. 8. Light Pre-Pass Rendering<br />Material Pass<br />프레임 버퍼에 Forward Rendering을 하면서 L-Buffer의 결과를 참조하여 L-Buffer * Material로 최종 color값을 계산한다.<br />
  9. 9. Light Pre-Pass Rendering<br />많은 동적 라이팅(dynamic lighting)<br />높은 성능*<br />다양한 재질(material)<br />알파 오브젝트의 라이팅과 그림자<br />하드웨어 MSAA*<br />
  10. 10. Inferred Lighting<br />많은 동적 라이팅(dynamic lighting)<br />높은 성능<br />다양한 재질(material)<br />알파 오브젝트의 라이팅과 그림자<br />하드웨어 MSAA<br />
  11. 11. Main Idea<br />저해상도/고해상도(mixed) 버퍼를 사용<br />Geometry Pass<br />G-Buffer를 Back Buffer보다 작은 사이즈로 렌더링<br />Light Pass<br />G-Buffer를 이용하여 라이팅 결과를 L-Buffer에 렌더링<br />Material Pass<br />Scene을 Forward Rendering하면서 L-Buffer의 결과에 Material을 적용한다. (Up Sampling)<br />DSF(Discontinuity Sensitive Filtering)를 이용해 저해상도-&gt;고해상도로 up-sampling<br />
  12. 12. Inferred Lighting<br />Geometry Pass: 800x450<br />Light Pass: 800x450<br />Material Pass: 1280x720, 8x MSAA<br />
  13. 13. DSF (Discontinuity Sensitive Filtering)<br />저해상도-&gt;고해상도 up-sampling 되면서 극심한 edge aliasing이 발생<br />Bilinear filter<br />DSF<br />
  14. 14.
  15. 15. Determining Lighting Sample Validity<br />normal과 depth를 비교<br />Bilateral filtering<br />Slow<br /><ul><li>Two textures
  16. 16. Nonlinear depth
  17. 17. Normal reconstruction</li></li></ul><li>DSF Buffer<br />Linear Depth (red)<br />Object/Instance ID (green)<br />Normal Group ID (blue)<br />Single ID in DSF buffer<br /> (DSF ID)<br />
  18. 18. Using DSF Buffer<br />Albedo, etc…<br />Depth와 ID를 비교한다.<br />bias bilinear filtering weights<br />material 정보와 결합<br />Depth<br />DSF ID<br />Pixel Shader<br />Fetch<br />Fetch<br />
  19. 19. Light Pre-Pass Rendering (33fps)<br />DSF<br />
  20. 20. Inferred Lighting (40fps)<br />DSF<br />
  21. 21. Inferred Lighting vs. Forward Rendering<br />101 objects, 81 lights. (xbox360)<br />Inferred Lighting: 29.4ms (34fps)<br />Forward Rendering: 167ms (6fps)<br />
  22. 22. References<br />http://graphics.cs.uiuc.edu/~kircher/publications.html<br />[GDC04] Deferred Shading (Shawn Hargreaves)<br />

×