Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "Radiance Cache Splatting: A GPU-Friendly Global Illumination Algorithm P. Gautron J. Křivánek K. Bouatouch S. Pattanaik."— Presentation transcript:

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

2 EGSR 2005 – Konstanz, Germany 2 Global Illumination Why? DirectIndirect Global Illumination

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

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

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

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

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

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

9 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

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

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

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

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

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

15 EGSR 2005 – Konstanz, Germany 15 Interpolation = E(P) nknk n EkEk + (n k x n) r EkEk + D t EkEk E

16 EGSR 2005 – Konstanz, Germany 16 Interpolation = E(P) w k (P) Σ k S w k (P) Σ k S EkEk + (n k x n) r EkEk + D t EkEk E S = { k / w k (P) > 1/a } n1n1 n n2n2 n3n3 n4n4

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

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

19 EGSR 2005 – Konstanz, Germany 19 Radiance Caching HSH Incident Radiance HSH BRDF   L1L1 L2L2 LnLn f1f1 f2f2 fnfn

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

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

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

23 EGSR 2005 – Konstanz, Germany 23 (Ir)Radiance Caching vs GPU (Ir)Radiance Caching GPU Ray tracingRasterization Cache stored in tree1/2/3D textures Spatial queriesTexture lookups ?

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

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

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

27 EGSR 2005 – Konstanz, Germany 27 From Octree to Splatting = E(P) w k (P) Σ k S w k (P) Σ k S EkEk + (n k x n) r EkEk + D t EkEk E S = { k / w k (P) > 1/a } Irradiance Interpolation n1n1 n n2n2 n3n3 n4n4

28 EGSR 2005 – Konstanz, Germany 28 From Octree to Splatting Irradiance Caching Weighting Function nknk n P PkPk w k (P) = 1 ||P-P k || RkRk + 1-n.n k Distance Normals divergence

29 EGSR 2005 – Konstanz, Germany 29 From Octree to Splatting Simplified Weighting Function w k (P) = 1 ||P-P k || RkRk + 1-n.n k Distance Normals divergence nknk n PPkPk

30 EGSR 2005 – Konstanz, Germany 30 From Octree to Splatting Simplified Weighting Function w k (P) = 1 ||P-P k || RkRk + 1-n.n k Distance Normals divergence nknk n PPkPk w k (P) = 1 ||P-P k || RkRk Distance ~

31 EGSR 2005 – Konstanz, Germany 31 From Octree to Splatting Simplified Weighting Function nknk n PPkPk aR k w k (P) = ||P-P k || RkRk > 1/a ~

32 EGSR 2005 – Konstanz, Germany 32 From Octree to Splatting Principle w k (P) = ||P-P k || RkRk > 1/a ~

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

51 EGSR 2005 – Konstanz, Germany 51 Algorithm Step 2 : detection CPU ?

52 EGSR 2005 – Konstanz, Germany 52 Algorithm Step 2 : detection CPU GPU Hemisphere sampling

53 EGSR 2005 – Konstanz, Germany 53 Algorithm Step 2 : detection CPU ? GPU Hemisphere sampling

54 EGSR 2005 – Konstanz, Germany 54 Algorithm Step 2 : detection CPU ?

55 EGSR 2005 – Konstanz, Germany 55 Algorithm Step 2 : detection CPU

56 EGSR 2005 – Konstanz, Germany 56 Algorithm Step 3 : display GPU Vertex Shader Fragment Shader Vertex Shader Matrices Record information

57 EGSR 2005 – Konstanz, Germany 57 Algorithm Step 3 : display GPU Vertex Shader Fragment Shader Fragment Shader Record information

58 EGSR 2005 – Konstanz, Germany 58 Algorithm Step 3 : display GPU Vertex Shader Fragment Shader Fragment Shader

59 EGSR 2005 – Konstanz, Germany 59 Algorithm Summary No spatial data structure Spatial queries replaced by splatting Interpolation by blending No quality loss compared to (Ir)Radiance Caching No order constraint for image traversal Can be implemented using native GPU features

60 EGSR 2005 – Konstanz, Germany 60 Our renderer Record computation 1-bounce GI: shadow maps & plane sampling Indirect lighting Radiance cache splatting Direct lighting GPU per-pixel lighting & shadow maps CPU ray tracing

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

62 EGSR 2005 – Konstanz, Germany 62 Results Sibenik Cathedral (80K triangles)

63 EGSR 2005 – Konstanz, Germany 63 Results Sponza Atrium (66K triangles)

64 EGSR 2005 – Konstanz, Germany 64 Results Comparison with Radiance Sponza AtriumSibenik Cathedral Radiance Time Our Renderer Time Speedup 645 s425 s 13,7 s14,3 s 47,129,7

65 EGSR 2005 – Konstanz, Germany 65 Results From Irradiance to Radiance Caching: Venus (24K triangles)

66 EGSR 2005 – Konstanz, Germany 66 Conclusion Reformulation of (Ir)Radiance Caching Speedup: 29x – 47x Interactive or fast, high quality rendering

67 EGSR 2005 – Konstanz, Germany 67 Future Work All-Frequency BRDFs More complex models Better hemisphere sampling Multiple bounces Area light sources

68 EGSR 2005 – Konstanz, Germany 68 Any questions? Radiance Cache Splatting on the web: http://www.irisa.fr/siames/Pascal.Gautron/


Download ppt "Radiance Cache Splatting: A GPU-Friendly Global Illumination Algorithm P. Gautron J. Křivánek K. Bouatouch S. Pattanaik."

Similar presentations


Ads by Google