Precomputed Radiance Transfer Precomputed Radiance Transfer for Real-Time Rendering in Dynamic, for Real-Time Rendering in Dynamic, Low-Frequency Lighting Environments Low-Frequency Lighting Environments Peter-Pike Sloan, Microsoft Research Peter-Pike Sloan, Microsoft Research Jan Kautz, MPI Informatik Jan Kautz, MPI Informatik John Snyder, Microsoft Research John Snyder, Microsoft Research
31
Embed
Precomputed Radiance Transfer for Real-Time Rendering in Dynamic, Low-Frequency Lighting Environments Peter-Pike Sloan, Microsoft Research Jan Kautz, MPI.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Precomputed Radiance Transfer Precomputed Radiance Transfer for Real-Time Rendering in Dynamic, for Real-Time Rendering in Dynamic,
• Better light integration Better light integration and transportand transport dynamic, area lightsdynamic, area lights self-shadowingself-shadowing interreflectionsinterreflections
• For diffuse and For diffuse and glossy surfacesglossy surfaces
• At real-time ratesAt real-time rates
point lightpoint light area lightarea light
area lighting,area lighting,no shadowsno shadows
area lighting,area lighting,shadowsshadows
Basic IdeaBasic Idea
( )V s
( ) ( )i iL s l B s
( ) ( ) ( ) ( , ) ( )i i NR v l B s V s f s v H s d s
( ) ( ) ( ) ( , ) ( )i i NR v l B s V s f s v H s d s
( ) max( ,0)NH s s N Preprocess for all Preprocess for all ii
v
( ) ( ) ( ) ( , ) ( )NR v L s V s f s v H s d s
( ) i iR v l t
lightlight
2D example, piecewise constant basis, shadows only2D example, piecewise constant basis, shadows only
2p2p
1p1p3p3p
Diffuse Self-TransferDiffuse Self-Transfer
PreprocessPreprocess
1p1p
2p2p
3p3p
Project LightProject Light
lightlight
RenderingRendering
•• ==1p1p
1p1p
2p2p
2p2p ==••
3p3p
3p3p ==••
PrecomputationPrecomputation
Basis 16Basis 16
Basis 17Basis 17
Basis 18Basis 18
illuminateilluminate resultresult
......
......
Previous Work Previous Work – – Scene RelightingScene Relighting
• [Dorsey91] opera lighting design[Dorsey91] opera lighting designadjusts intensity of fixed light sourcesadjusts intensity of fixed light sources
• [Nimeroff94] natural environments[Nimeroff94] natural environmentsuses steerable functions for general skylight illuminationuses steerable functions for general skylight illumination
• [Teo97] efficient linear re-rendering[Teo97] efficient linear re-renderinggeneralizes to non-infinite sources, PCA to reduce basisgeneralizes to non-infinite sources, PCA to reduce basis
• [Debevec00] reflectance field of a face[Debevec00] reflectance field of a faceuses directional light basis for relighting facesuses directional light basis for relighting faces
• [Dobashi95] lighting design[Dobashi95] lighting designuses SH basis for point light intensity distributionuses SH basis for point light intensity distribution
Basis FunctionsBasis Functions
• We use We use Spherical HarmonicsSpherical Harmonics
• SH have nice properties:SH have nice properties: simple projection/reconstructionsimple projection/reconstruction rotationally invariant (no aliasing)rotationally invariant (no aliasing) simple rotationsimple rotation simple convolutionsimple convolution few basis functions few basis functions low freqs low freqs
( ) ( ( )) ( , ) ( )p i i Nr v l y s f v s H s d s
( ) ( ) ( , ) ( )p i i Nr v l y s f v s H s d s
……
BRDF CoefficientsBRDF Coefficients
Arbitrary BRDF ResultsArbitrary BRDF Results
Other BRDFsOther BRDFs Spatially VaryingSpatially VaryingAnisotropic BRDFsAnisotropic BRDFs
Neighborhood TransferNeighborhood Transfer
• Allows to cast shadows/caustics onto Allows to cast shadows/caustics onto arbitrary receiversarbitrary receivers
• Store how object scatters/blocks light Store how object scatters/blocks light around itself (transfer matrices on grid)around itself (transfer matrices on grid)
**
**
transfer matricestransfer matrices transferred radiancetransferred radiance
receiverreceiver
lig
hti
ng
lig
hti
ng
receiverreceiver
Neighborhood Transfer ResultsNeighborhood Transfer Results
• 64x64x8 neighborhood64x64x8 neighborhood
• diffuse receiverdiffuse receiver
• timings on 2.2Ghz P4, timings on 2.2Ghz P4, ATI Radeon 8500 ATI Radeon 8500
• 4fps if light changes4fps if light changes
• 120fps for constant light120fps for constant light
on surfaces or in volumeson surfaces or in volumes
• Includes shadows and interreflectionsIncludes shadows and interreflections• Works for diffuse and glossy BRDFsWorks for diffuse and glossy BRDFs
Limitations:Limitations:• Works only for low-frequency lightingWorks only for low-frequency lighting• Rigid objects only, no deformationRigid objects only, no deformation
• Enhanced preprocessingEnhanced preprocessing Subsurface scattering, dispersionSubsurface scattering, dispersion Simulator optimizationSimulator optimization Adaptive sampling of transfer over surfaceAdaptive sampling of transfer over surface
• Deformable objectsDeformable objects
AcknowledgementsAcknowledgements
• Thanks to:Thanks to: Jason Mitchell & Michael Doggett (ATI) Jason Mitchell & Michael Doggett (ATI) Matthew Papakipos (NVidia) Matthew Papakipos (NVidia) Paul Debevec for light probesPaul Debevec for light probes Stanford Graphics Lab for Buddha modelStanford Graphics Lab for Buddha model Michael Cohen, Chas Boyd, Hans-Peter Seidel for Michael Cohen, Chas Boyd, Hans-Peter Seidel for
early discussions and supportearly discussions and support
• [Ashikmin02] steerable illumination textures[Ashikmin02] steerable illumination texturessteers small light source over diffuse objectsteers small light source over diffuse object
• [Matusik02] image-based 3D photography[Matusik02] image-based 3D photographysurface lightfield + reflectance field – not interactivesurface lightfield + reflectance field – not interactive
Dynamic LightingDynamic Lighting
• Sample incident lighting on-the-flySample incident lighting on-the-fly precompute textures for SH basis functions precompute textures for SH basis functions use cube map parameterizationuse cube map parameterization render into 6 cube map faces around render into 6 cube map faces around pp read images backread images back projection: dot-product between cube mapsprojection: dot-product between cube maps
• ResultsResults low-resolution cube maps sufficient: 6x16x16low-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 8500takes 1.16 ms on P3-933Mhz, ATI 8500