Download presentation

Presentation is loading. Please wait.

Published byConnor Rhodes Modified over 2 years ago

1
Precomputed Radiance Transfer for Real-Time Rendering in Dynamic, Low-Frequency Lighting Environments Peter-Pike Sloan, Microsoft Research Jan Kautz, MPI Informatik John Snyder, Microsoft Research

2
Previous Work – Where We Fit Transport Complexity Lighting simple shadows point lights full env. map inter- reflections single area light ??[Moeller02] [Blinn76] [Heidrich00] [Crow77] [Crow77][Williams78][Stamminger02][Heidrich00][Malzbender01][Tong02][Blinn76][Miller84][Latta02][Ramamoorthi02] [Ashikhmin02] our technique [Moeller02] [Ashikhmin02] Frozen Lighting Irradiance Volumes [Greger96] Surface Lightfields [Miller98,Wood00] [Chen02] Non-Interactive[Matusik02]

3
Motivation Better light integration and transport Better light integration and transport dynamic, area lights dynamic, area lights self-shadowing self-shadowing interreflections interreflections For diffuse and glossy surfaces For diffuse and glossy surfaces At real-time rates At real-time rates point light area light area lighting, no shadows area lighting, shadows

4
Basic Idea Preprocess for all i

5
light 2D example, piecewise constant basis, shadows only Diffuse Self-Transfer Preprocess Project Light light Rendering = = =

6
Precomputation Basis 16 Basis 17 Basis 18 illuminateresult......

7
Previous Work – Scene Relighting [Dorsey91] opera lighting design [Dorsey91] opera lighting design adjusts intensity of fixed light sources [Nimeroff94] natural environments [Nimeroff94] natural environments uses steerable functions for general skylight illumination [Teo97] efficient linear re-rendering [Teo97] efficient linear re-rendering generalizes to non-infinite sources, PCA to reduce basis [Debevec00] reflectance field of a face [Debevec00] reflectance field of a face uses directional light basis for relighting faces [Dobashi95] lighting design [Dobashi95] lighting design uses SH basis for point light intensity distribution

8
Basis Functions We use Spherical Harmonics We use Spherical Harmonics SH have nice properties: SH have nice properties: simple projection/reconstruction simple projection/reconstruction rotationally invariant (no aliasing) rotationally invariant (no aliasing) simple rotation simple rotation simple convolution simple convolution few basis functions low freqs few basis functions low freqs l=0 m=0 l=1 m=-1 l=1 m=0 l=1 m=1 l=2 m=1 l=3 m=-1 l=3 m=2 l=4 m=-2

9
Diffuse Transfer Results No Shadows/Inter Shadows Shadows+Inter No Shadows/Inter Shadows Shadows+Inter

10
Glossy Self-Transfer exiting radiance is view-dependent exiting radiance is view-dependent depends on BRDF (we use Phong)

11
Glossy Self-Transfer exiting radiance is view-dependent exiting radiance is view-dependent depends on BRDF (we use Phong) represent transferred incident radiance, not exiting represent transferred incident radiance, not exiting accounts for shadows, interreflections allows run-time BRDF changes allows run-time BRDF changes

12
Transfer Matrix Precompute how global lighting transferred lighting * * lighting transfer matrices transferred radiance p1p1p1p1 p2p2p2p2 p1p1p1p1 p2p2p2p2

13
Glossy Rendering Lighting Env in SH (vector) Transfer matrix (maps radiance to transferred incident radiance) Integrates incident radiance against BRDF in direction v Phong: Convolve light and evaluate in reflection direction, R Freeze the view Freeze the Light Lookup at R

14
Glossy Transfer Results No Shadows/Inter Shadows Shadows+Inter No Shadows/Inter Shadows Shadows+Inter Glossy object, 50K mesh Glossy object, 50K mesh Runs at 3.6/16/125fps on 2.2Ghz P4, ATI Radeon 8500 Runs at 3.6/16/125fps on 2.2Ghz P4, ATI Radeon 8500

15
Interreflections and Caustics none 1 bounce 2 bounces caustics interreflections Transport Paths Runtime is independent of transport complexity

16
Arbitrary BRDFs [Kautz02] = … BRDF Coefficients

17
Arbitrary BRDF Results Other BRDFs Spatially Varying Anisotropic BRDFs

18
Neighborhood Transfer Allows to cast shadows/caustics onto arbitrary receivers Allows to cast shadows/caustics onto arbitrary receivers Store how object scatters/blocks light around itself (transfer matrices on grid) Store how object scatters/blocks light around itself (transfer matrices on grid) * * transfer matrices transferred radiance receiver lighting receiver

19
Neighborhood Transfer Results 64x64x8 neighborhood 64x64x8 neighborhood diffuse receiver diffuse receiver timings on 2.2Ghz P4, ATI Radeon 8500 timings on 2.2Ghz P4, ATI Radeon fps if light changes 4fps if light changes 120fps for constant light 120fps for constant light

20
Volumes Diffuse volume: 32x32x32 grid Diffuse volume: 32x32x32 grid Runs at 40fps on 2.2Ghz P4, ATI 8500 Runs at 40fps on 2.2Ghz P4, ATI 8500 Here: dynamic lighting Here: dynamic lighting

21
Local Lighting using Radiance Sampling Sample incident radiance at multiple points Sample incident radiance at multiple points Choose sample points over object using ICP from VQ Choose sample points over object using ICP from VQ Correct for shadows but not interreflections Correct for shadows but not interreflections single sample (at center = light at ) multi-sample result multi-sample locations

22
Light Size vs. SH Order 20° 40° 0° n=2 linear n=3 quadratic n=4 cubic n=5 quartic n=6 quintic n=26 n=26 windowed RT

23
Results Live Demo (Radeon 9700)

24
Conclusions Contributions: Fast, arbitrary dynamic lighting Fast, arbitrary dynamic lighting on surfaces or in volumes on surfaces or in volumes Includes shadows and interreflections Includes shadows and interreflections Works for diffuse and glossy BRDFs Works for diffuse and glossy BRDFsLimitations: Works only for low-frequency lighting Works only for low-frequency lighting Rigid objects only, no deformation Rigid objects only, no deformation

25
Future Work Practical glossy transfer Practical glossy transfer Eliminate frozen view/light constraints Eliminate frozen view/light constraints Compress matrices/vectors Compress matrices/vectors Enhanced preprocessing Enhanced preprocessing Subsurface scattering, dispersion Subsurface scattering, dispersion Simulator optimization Simulator optimization Adaptive sampling of transfer over surface Adaptive sampling of transfer over surface Deformable objects Deformable objects

26
Acknowledgements Thanks to: Thanks to: Jason Mitchell & Michael Doggett (ATI) Jason Mitchell & Michael Doggett (ATI) Matthew Papakipos (NVidia) Matthew Papakipos (NVidia) Paul Debevec for light probes Paul Debevec for light probes Stanford Graphics Lab for Buddha model Stanford Graphics Lab for Buddha model Michael Cohen, Chas Boyd, Hans-Peter Seidel for early discussions and support Michael Cohen, Chas Boyd, Hans-Peter Seidel for early discussions and supportQuestions?

27
Performance Model # Verts GF FPSR300FPS Pre- compute Max50, h Buddha49, h Tweety48, h Tyra100, h Teapot152, h

28
Matrix Formulation

29
Results – Preprocessing ModelTypeSamplingPreproc.FPS headdiffuse 50K vert. 1.1h129 ringdiffuse 256x256 t. 8m94 buddhadiffuse 50K vert. 2.5h125 buddhaglossy 2.5h..125 tyradiffuse 100K vert. 2.4h83 tyraglossy 2.4h..83 teapotglossy 150K vert. 4.4h..49 clouddiffuse32x32x3215m40 gliderneighb.64x64x83h..120

30
Previous Work – Precomputed Transport [Greger96] irradiance volumes [Greger96] irradiance volumes move diffuse object through precomputed lighting [Miller98,Wood00,Chen02] surface lightfields [Miller98,Wood00,Chen02] surface lightfields frozen lighting environments [Ashikmin02] steerable illumination textures [Ashikmin02] steerable illumination textures steers small light source over diffuse object [Matusik02] image-based 3D photography [Matusik02] image-based 3D photography surface lightfield + reflectance field – not interactive

31
Dynamic Lighting Sample incident lighting on-the-fly Sample incident lighting on-the-fly precompute textures for SH basis functions precompute textures for SH basis functions use cube map parameterization use cube map parameterization render into 6 cube map faces around p render into 6 cube map faces around p read images back read images back projection: dot-product between cube maps projection: dot-product between cube maps Results Results low-resolution cube maps sufficient: 6x16x16 low-resolution cube maps sufficient: 6x16x16 average error: 0.2%, worst-case: 0.5% average error: 0.2%, worst-case: 0.5% takes 1.16 ms on P3-933Mhz, ATI 8500 takes 1.16 ms on P3-933Mhz, ATI 8500

Similar presentations

© 2016 SlidePlayer.com Inc.

All rights reserved.

Ads by Google