50
Low Overhead Probe- based Global Illumination Using Ray Tracing Jens Fursund

Low Overhead Probe- based Global Illumination Using Ray

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Low Overhead Probe- based Global Illumination Using Ray

Low Overhead Probe- based Global Illumination Using Ray Tracing Jens Fursund

Page 2: Low Overhead Probe- based Global Illumination Using Ray

2 @PowerVRInsider │ #idc15 facebook.com/imgtec

Why Global Illumination (GI)?

Page 3: Low Overhead Probe- based Global Illumination Using Ray

3 @PowerVRInsider │ #idc15 facebook.com/imgtec

Why Global Illumination (GI)?

Page 4: Low Overhead Probe- based Global Illumination Using Ray

4 @PowerVRInsider │ #idc15 facebook.com/imgtec

What makes GI challenging?

Page 5: Low Overhead Probe- based Global Illumination Using Ray

5 @PowerVRInsider │ #idc15 facebook.com/imgtec

Mobile real-time GI?

Page 6: Low Overhead Probe- based Global Illumination Using Ray

6 @PowerVRInsider │ #idc15 facebook.com/imgtec

How do we do GI today?

High cost

Low dynamism

Path tracing

Light mapping

Probes

Voxel-based techniques

Screen-space GI Low fidelity

Page 7: Low Overhead Probe- based Global Illumination Using Ray

7 @PowerVRInsider │ #idc15 facebook.com/imgtec

Path-tracing

Page 8: Low Overhead Probe- based Global Illumination Using Ray

8 @PowerVRInsider │ #idc15 facebook.com/imgtec

Screen-space GI

[SSDO]

Page 9: Low Overhead Probe- based Global Illumination Using Ray

9 @PowerVRInsider │ #idc15 facebook.com/imgtec

Lightmapping

Page 10: Low Overhead Probe- based Global Illumination Using Ray

10 @PowerVRInsider │ #idc15 facebook.com/imgtec

Voxels

[VCT]

Page 11: Low Overhead Probe- based Global Illumination Using Ray

11 @PowerVRInsider │ #idc15 facebook.com/imgtec

Probes

[LPT]

Page 12: Low Overhead Probe- based Global Illumination Using Ray

12 @PowerVRInsider │ #idc15 facebook.com/imgtec

Storing light directions

Page 13: Low Overhead Probe- based Global Illumination Using Ray

13 @PowerVRInsider │ #idc15 facebook.com/imgtec

Storing light directions

Page 14: Low Overhead Probe- based Global Illumination Using Ray

14 @PowerVRInsider │ #idc15 facebook.com/imgtec

Spherical Harmonics (SH)

[SHT]

Page 15: Low Overhead Probe- based Global Illumination Using Ray

15 @PowerVRInsider │ #idc15 facebook.com/imgtec

Using SH in games

[LPT] [SAS]

Page 16: Low Overhead Probe- based Global Illumination Using Ray

16 @PowerVRInsider │ #idc15 facebook.com/imgtec

SH Probes in Real-time?

Page 17: Low Overhead Probe- based Global Illumination Using Ray

17 @PowerVRInsider │ #idc15 facebook.com/imgtec

Baking probes

Page 18: Low Overhead Probe- based Global Illumination Using Ray

18 @PowerVRInsider │ #idc15 facebook.com/imgtec

Baking probes

Page 19: Low Overhead Probe- based Global Illumination Using Ray

19 @PowerVRInsider │ #idc15 facebook.com/imgtec

Classic SH Baking

Page 20: Low Overhead Probe- based Global Illumination Using Ray

20 @PowerVRInsider │ #idc15 facebook.com/imgtec

Direct to SH

Page 21: Low Overhead Probe- based Global Illumination Using Ray

21 @PowerVRInsider │ #idc15 facebook.com/imgtec

Real-time Probe Baking

color = colorprevious⋅ weight + colorcurrent ⋅ ( 1 - weight )

Page 22: Low Overhead Probe- based Global Illumination Using Ray

22 @PowerVRInsider │ #idc15 facebook.com/imgtec

Shadowed probes

Page 23: Low Overhead Probe- based Global Illumination Using Ray

23 @PowerVRInsider │ #idc15 facebook.com/imgtec

Probe interpolation

Page 24: Low Overhead Probe- based Global Illumination Using Ray

24 @PowerVRInsider │ #idc15 facebook.com/imgtec

Tetrahedral interpolation

[LPT]

Page 25: Low Overhead Probe- based Global Illumination Using Ray

25 @PowerVRInsider │ #idc15 facebook.com/imgtec

Tetrahedral interpolation

[LPT]

Page 26: Low Overhead Probe- based Global Illumination Using Ray

26 @PowerVRInsider │ #idc15 facebook.com/imgtec

Inverse distance weighted interpolation

Page 27: Low Overhead Probe- based Global Illumination Using Ray

27 @PowerVRInsider │ #idc15 facebook.com/imgtec

Inverse distance weighted interpolation

Page 28: Low Overhead Probe- based Global Illumination Using Ray

DEMO

Page 29: Low Overhead Probe- based Global Illumination Using Ray

29 @PowerVRInsider │ #idc15 facebook.com/imgtec

Indirect occlusion

Page 30: Low Overhead Probe- based Global Illumination Using Ray

30 @PowerVRInsider │ #idc15 facebook.com/imgtec

Indirect occlusion

Page 31: Low Overhead Probe- based Global Illumination Using Ray

31 @PowerVRInsider │ #idc15 facebook.com/imgtec

Probe occlusion

Page 32: Low Overhead Probe- based Global Illumination Using Ray

32 @PowerVRInsider │ #idc15 facebook.com/imgtec

Probe occlusion

Page 33: Low Overhead Probe- based Global Illumination Using Ray

33 @PowerVRInsider │ #idc15 facebook.com/imgtec

Reducing ray count

Page 34: Low Overhead Probe- based Global Illumination Using Ray

34 @PowerVRInsider │ #idc15 facebook.com/imgtec

Bilateral upscaling

Page 35: Low Overhead Probe- based Global Illumination Using Ray

35 @PowerVRInsider │ #idc15 facebook.com/imgtec

Bilateral upscaling

Page 36: Low Overhead Probe- based Global Illumination Using Ray

36 @PowerVRInsider │ #idc15 facebook.com/imgtec

Bilateral upscaling

Page 37: Low Overhead Probe- based Global Illumination Using Ray

37 @PowerVRInsider │ #idc15 facebook.com/imgtec

Temporal reprojection filter

Previous camera

Current camera

[REP][STF]

Page 38: Low Overhead Probe- based Global Illumination Using Ray

38 @PowerVRInsider │ #idc15 facebook.com/imgtec

Temporal reprojection filter

Previous camera

Current camera

[REP][STF]

Page 39: Low Overhead Probe- based Global Illumination Using Ray

39 @PowerVRInsider │ #idc15 facebook.com/imgtec

Temporal reprojection filter

Previous camera

Current camera

[REP][STF]

Page 40: Low Overhead Probe- based Global Illumination Using Ray

40 @PowerVRInsider │ #idc15 facebook.com/imgtec

Bilateral blur

[FRI]

Page 41: Low Overhead Probe- based Global Illumination Using Ray

41 @PowerVRInsider │ #idc15 facebook.com/imgtec

Pipeline overview

Sample probes

Bilateral blur

Temporal filter

Bilateral blur

Bilateral upscale

Progressive sub-realtime probe-rendering

[FRI]

Page 42: Low Overhead Probe- based Global Illumination Using Ray

DEMO

Page 43: Low Overhead Probe- based Global Illumination Using Ray

43 @PowerVRInsider │ #idc15 facebook.com/imgtec

Render Stats ▪ 6 passes total ▪ 1-pixel * 9 SH per probe ▪ Low-res buffer size is multiplied by the amount of SH coefficients (so e.g.

9 SH gives 192x192 * 9 in low-res buffer ) ▪ Multiple accumulation targets for storing SH coefficients ( no need to

render more than once )

Page 44: Low Overhead Probe- based Global Illumination Using Ray

44 @PowerVRInsider │ #idc15 facebook.com/imgtec

Render Stats In Sponza scene: ▪ 2K rays per probe (48 probes in this case, one bounce, one light), can be

amortized across multiple frames ▪ 4.5 rays per low-res buffer pixel ▪ In total a 2K resolution GI render is approximately 0.8 rays per pixel

Page 45: Low Overhead Probe- based Global Illumination Using Ray

45 @PowerVRInsider │ #idc15 facebook.com/imgtec

Future improvements ▪ Culling probe update based on body centered LOD ▪ Automatic placement of probes ▪ Better bilateral upsampling with normals ▪ Better probe occlusion method ▪ Trace against lower LOD ▪ Extracting SH dominant light direction for specular ▪ Using dominant light direction for indirect occlusion

Page 46: Low Overhead Probe- based Global Illumination Using Ray

46 @PowerVRInsider │ #idc15 facebook.com/imgtec

Next-gen mobile GI

Page 47: Low Overhead Probe- based Global Illumination Using Ray

47 @PowerVRInsider │ #idc15 facebook.com/imgtec

Thank you!

Jens Fursund [email protected]

@jensfursund

Page 48: Low Overhead Probe- based Global Illumination Using Ray

48 @PowerVRInsider │ #idc15 facebook.com/imgtec

Page 49: Low Overhead Probe- based Global Illumination Using Ray

www.imgtec.com/idc

Page 50: Low Overhead Probe- based Global Illumination Using Ray

50 @PowerVRInsider │ #idc15 facebook.com/imgtec

References [SHT] Spherical Harmonic Lighting: The Gritty Details, Robin Green [FRI] Tech Feature: SSAO and Temporal Blur, Frictional Games [LPT] Light Probe Interpolation Using Tetrahedral Tessellations, Robert Cupisz [VCT] Interactive Indirect Illumination Using Voxel Cone Tracing, Crassin et al [SSDO] Approximating Dynamic Global Illumination in Image Space, Ritschel et al [SAS] Screen Space Spherical Harmonic Lighting, Steve Anichini [REP] Accelerating Real-Time Shading with Reverse Reprojection Caching, Nehab et al [STF] Stable SSAO in Battlefield 3 with Selective Temporal Filtering, Bavoil et al