1 / 68

Radiance Cache Splatting: A GPU-Friendly Global Illumination Algorithm

Radiance Cache Splatting: A GPU-Friendly Global Illumination Algorithm. P. Gautron J. K ř iv á nek K. Bouatouch S. Pattanaik. Direct. Indirect. Global Illumination. Global Illumination. Why?. ∫. L i (P, ω i ). =. Global Illumination. How?. L o (P, ω o ).

Download Presentation

Radiance Cache Splatting: A GPU-Friendly Global Illumination Algorithm

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Radiance Cache Splatting:A GPU-Friendly Global Illumination Algorithm P. Gautron J. Křivánek K. BouatouchS. Pattanaik

  2. Direct Indirect Global Illumination Global Illumination Why? EGSR 2005 – Konstanz, Germany

  3. Li(P, ωi) = Global Illumination How? Lo(P, ωo) * BRDF(ωo, ωi) *cos(θ)dωi EGSR 2005 – Konstanz, Germany

  4. Li(P, ωi) = Global Illumination How? Lo(P, ωo) * BRDF(ωo, ωi) *cos(θ)dωi No analytical solution Numerical methods - Radiosity - Photon mapping - Path tracing - Bidirectional path tracing - Irradiance & Radiance caching - … EGSR 2005 – Konstanz, Germany

  5. GPU Speed Time GPUs Speed EGSR 2005 – Konstanz, Germany

  6. Simple 3D graphics only Time GPUs Versatility Linear algebra Fluid dynamics Signal processing Databases … And graphics! EGSR 2005 – Konstanz, Germany

  7. GPU Global Illumination & GPUs CPU EGSR 2005 – Konstanz, Germany

  8. Hemicube Cohen et al. 1985 Photon mapping on GPU Purcell et al. 2003 PRT Sloan et al. 2002 Global Illumination & GPUs Previous work EGSR 2005 – Konstanz, Germany

  9. Contributions A reformulation of (Ir)Radiance caching … - No complex data structure - Fast, image-space (ir)radiance interpolation - Fast approximation of hemisphere sampling … for fast and easy GPU implementation EGSR 2005 – Konstanz, Germany

  10. Outline Introduction Irradiance & Radiance Caching Our method: Radiance Cache Splatting Results Conclusion & Future Work EGSR 2005 – Konstanz, Germany

  11. Outline Introduction Irradiance & Radiance Caching Our method: Radiance Cache Splatting Results Conclusion & Future Work EGSR 2005 – Konstanz, Germany

  12. Irradiance Caching Sparse computation of indirect diffuse lighting   EGSR 2005 – Konstanz, Germany

  13. Irradiance Caching Sparse computation of indirect diffuse lighting EGSR 2005 – Konstanz, Germany

  14. Irradiance Caching Sparse computation of indirect diffuse lighting Interpolation EGSR 2005 – Konstanz, Germany

  15. nk n E(P) = + (nk x n) Ek Ek Ek + D r t Interpolation E EGSR 2005 – Konstanz, Germany

  16. E Σ n4 n2 n n3 n1 wk(P) k S Σ E(P) = wk(P) k S + (nk x n) Ek Ek Ek + D r t Interpolation S = { k / wk(P) > 1/a } EGSR 2005 – Konstanz, Germany

  17. Radiance Caching Extension of irradiance caching to glossy interreflections Cache directional distribution of light EGSR 2005 – Konstanz, Germany

  18. Radiance Caching Extension of irradiance caching to glossy interreflections Cache directional distribution of light Hemispherical Harmonics EGSR 2005 – Konstanz, Germany

  19. f1 L1 f2 L2  fn Ln Radiance Caching  HSH Incident Radiance HSH BRDF EGSR 2005 – Konstanz, Germany

  20. Implementation Cache Record Computation Ray tracing   EGSR 2005 – Konstanz, Germany

  21. Implementation Cache storage 4 6 1 10 8 2 3 11 3 13 2 4 5 6 7 12 8 9 10 11 12 13 9 7 5 1 EGSR 2005 – Konstanz, Germany

  22. Outline Introduction Irradiance & Radiance Caching Our method: Radiance Cache Splatting Results Conclusion & Future Work EGSR 2005 – Konstanz, Germany

  23. (Ir)Radiance Caching vs GPU (Ir)Radiance Caching GPU ? Ray tracing Rasterization Cache stored in tree 1/2/3D textures Spatial queries Texture lookups EGSR 2005 – Konstanz, Germany

  24. (Ir)Radiance Caching (Ir)Radiance Caching Native GPU features Octree Ray tracing Reformulation Our method EGSR 2005 – Konstanz, Germany

  25. Outline Introduction Irradiance & Radiance Caching Our method: Radiance Cache Splatting From octree to splatting From ray tracing to rasterization Overall algorithm Results Conclusion & Future Work EGSR 2005 – Konstanz, Germany

  26. Outline Introduction Irradiance & Radiance Caching Our method: Radiance Cache Splatting From octree to splatting From ray tracing to rasterization Overall algorithm Results Conclusion & Future Work EGSR 2005 – Konstanz, Germany

  27. E Σ n4 n n3 n1 n2 wk(P) k S Σ E(P) = wk(P) k S + (nk x n) Ek Ek Ek + D r t From Octree to Splatting Irradiance Interpolation S = { k / wk(P) > 1/a } EGSR 2005 – Konstanz, Germany

  28. P Pk nk n 1 wk(P) = ||P-Pk|| 1-n.nk + Rk From Octree to Splatting Irradiance Caching Weighting Function Normals divergence Distance EGSR 2005 – Konstanz, Germany

  29. nk n 1 wk(P) = ||P-Pk|| 1-n.nk + Rk From Octree to Splatting Simplified Weighting Function Pk P Normals divergence Distance EGSR 2005 – Konstanz, Germany

  30. n nk ~ 1 1 wk(P) = wk(P) = ||P-Pk|| ||P-Pk|| 1-n.nk + Rk Rk Distance From Octree to Splatting Simplified Weighting Function Pk P Normals divergence Distance EGSR 2005 – Konstanz, Germany

  31. nk n ~ Rk wk(P) = > 1/a ||P-Pk|| From Octree to Splatting Simplified Weighting Function Pk P aRk EGSR 2005 – Konstanz, Germany

  32. ~ Rk wk(P) = > 1/a ||P-Pk|| From Octree to Splatting Principle EGSR 2005 – Konstanz, Germany

  33. From Octree to Splatting Principle EGSR 2005 – Konstanz, Germany

  34. From Octree to Splatting Principle wk(P)>1/a ? EGSR 2005 – Konstanz, Germany

  35. From Octree to Splatting Principle wk(P)E(P) wk(P) EGSR 2005 – Konstanz, Germany

  36. From Octree to Splatting Principle EGSR 2005 – Konstanz, Germany

  37. Σ Σ k k From Octree to Splatting Principle wk(P)E(P) wk(P) EGSR 2005 – Konstanz, Germany

  38. wk(P)E(P) wk(P) Σ Σ k k From Octree to Splatting Final Image Generation EGSR 2005 – Konstanz, Germany

  39. From Octree to Splatting Example EGSR 2005 – Konstanz, Germany

  40. Outline Introduction Irradiance & Radiance Caching Our method: Radiance Cache Splatting From octree to splatting From ray tracing to rasterization Overall algorithm Results Conclusion & Future Work EGSR 2005 – Konstanz, Germany

  41. From Ray Tracing to Rasterization CPU EGSR 2005 – Konstanz, Germany

  42.  Vertex Shader Fragment Shader From Ray Tracing to Rasterization Simple plane sampling GPU EGSR 2005 – Konstanz, Germany

  43. Vertex Shader Fragment Shader From Ray Tracing to Rasterization Simple plane sampling GPU  EGSR 2005 – Konstanz, Germany

  44. Vertex Shader Fragment Shader From Ray Tracing to Rasterization Simple plane sampling GPU EGSR 2005 – Konstanz, Germany

  45. Vertex Shader Fragment Shader From Ray Tracing to Rasterization Simple plane sampling GPU Incoming radiance loss EGSR 2005 – Konstanz, Germany

  46. Vertex Shader Fragment Shader From Ray Tracing to Rasterization Our plane sampling GPU  EGSR 2005 – Konstanz, Germany

  47. Vertex Shader Fragment Shader From Ray Tracing to Rasterization Our plane sampling GPU Compensation of incoming radiance loss EGSR 2005 – Konstanz, Germany

  48. Our plane sampling Summary 3x more accurate than simple plane sampling Plausible directional information Easy implementation on GPU EGSR 2005 – Konstanz, Germany

  49. Outline Introduction Irradiance & Radiance Caching Our method: Radiance Cache Splatting From octree to splatting From ray tracing to rasterization Overall algorithm Results Conclusion & Future Work EGSR 2005 – Konstanz, Germany

  50. Vertex Shader Fragment Shader Algorithm Step 1 : information generation GPU EGSR 2005 – Konstanz, Germany

More Related