Local, Deformable Precomputed Radiance Transfer
Local, Deformable Precomputed Radiance Transfer
Peter-Pike Sloan, Ben Luna
Microsoft Corporation
John Snyder
Microsoft Research
“Local” Global Illumination“Local” Global Illumination
Renders GI effects onlocal details
Neglects gross shadowing
Rotates transfer model
“Local” Global Illumination“Local” Global Illumination
Original Ray Traced Rotated
Bat DemoBat Demo
illuminateilluminate responseresponse
TransferVector
Precomputed Radiance Transfer (PRT)Precomputed Radiance Transfer (PRT)
Related Work: Area LightingRelated Work: Area Lighting
[Kautz2004]
[James2003]
[Ramamoorthi2001]
[Sloan2002][Ng2003]
[Liu2004;Wang2004]
[Sloan2003]
[Muller2004]
[Zhou2005]
Other Related WorkOther Related Work
• Directional Lighting
– [Malzbender2001],[Ashikhmin2002]
– [Heidrich2000]
– [Max1988],[Dana1999]
• Ambient Occlusion
– [Miller1994],[Phar2004]
– [Kontkanen2005],[Bunnel2005]
• Environmental Lighting
– [McCallister2002]
Spherical Harmonics (SH)Spherical Harmonics (SH)
• Spherical Analog to the Fourier basis
• Used extensively in graphics
– [Kajiya84;Cabral87;Sillion91;Westin92;Stam95]
• Polynomials in R3 restricted to sphere
1
0
n l
lm lml m l
f s f y s
lm lmf f s y s ds
projection reconstruction
Spherical Harmonics (SH)Spherical Harmonics (SH)
• Spherical Analog to the Fourier basis
• Used extensively in graphics
– [Kajiya84;Cabral87;Sillion91;Westin92;Stam95]
• Polynomials in R3 restricted to sphere
lm lmf f s y s ds
projection reconstruction
f s f y s
Low Frequency LightingLow Frequency Lighting
order 1 order 2 order 4
order 8 order 16 order 32 original
SH Rotational InvarianceSH Rotational Invariance
rotate
rotate
SH SH
Spherical Harmonics (SH)Spherical Harmonics (SH)
nth order, n2 coefficients
Evaluation O(n2)
Zonal Harmonics (ZH)Zonal Harmonics (ZH)
Polynomials in Z
Circular Symmetry
SH Rotation StructureSH Rotation Structure
2
2 2
1
3 1
C
L L L Y
L L L Z
L L L X
Q Q Q Q Q YX
Q Q Q Q Q YZ
Q Q Q Q Q Z
Q Q Q Q Q XZ
Q Q Q Q Q X Y
O(n3)
Too Slow!
ZH Rotation StructureZH Rotation Structure
2
1
3 1
C
L L L
L L L Z
L L L
Q Q Q Q Q
Q Q Q Q Q
Q Q Q Q Q Z
Q Q Q Q Q
Q Q Q Q Q
O(n2)
What’s that column?What’s that column?
Rotate delta function so that z → z’ :
• Evaluate delta function at z = (0,0,1)
• Rotating scales column C by dl
– Equals y(z’) due to rotation invariance
0 0
2 1( )
4l z l l
ld s y s ds y z
z
z’
lm l lmC d y z
( )z s
( )z s
What’s that column?What’s that column?
Rotate delta function so that z → z’ :
• Evaluate delta function at z = (0,0,1)
• Rotating scales column C by dl
– Equals y(z’) due to rotation invariance
0 0
2 1( )
4l z l l
ld s y s ds y z
z
z’
lm l lmC d y z
( )z s
( )z s
lm lm lC y z d
Efficient ZH RotationEfficient ZH Rotation
z
g(s)
Efficient ZH RotationEfficient ZH Rotation
0l lg y s g s ds
z3 4
0
0
3 2
3 4
3
g(s)
Efficient ZH RotationEfficient ZH Rotation
z z’3 4
0
0
3 2
3 4
3
g(s) g’(s)
0l lg y s g s ds
Efficient ZH RotationEfficient ZH Rotation
* * * * *0 1 1 1diag , , , ,G g g g g
*g G y z
z z’3 4
0
0
3 2
3 4
3
g(s)
0l lg y s g s ds
g’(s)
Efficient ZH RotationEfficient ZH Rotation
* 4
2 1l
l ll
gg g
d l
* * * * *0 1 1 1diag , , , ,G g g g g
*g G y z
z z’3 4
0
0
3 2
3 4
3
g(s)
0l lg y s g s ds
g’(s)
Transfer Approx. Using ZHTransfer Approx. Using ZH
• Approximate transfer vector t by sum of N “lobes”
* *
1
N
i ii
t G y s
e.g., t + + +
Transfer Approx. Using ZHTransfer Approx. Using ZH
• Approximate transfer vector t by sum of N “lobes”
* *
1
N
R i ii
t G y R s
* *
1
N
i ii
t G y s
Transfer Approx. Using ZHTransfer Approx. Using ZH
• Approximate transfer vector t by sum of N “lobes”
• Minimize squared error over the sphere
2
2 2
St s t s ds t t
* *
1
N
i ii
t G y s
* *
1
N
R i ii
t G y R s
Single Lobe SolutionSingle Lobe Solution
• For known direction s*, closed form solution
• “Optimal linear” direction is often good
– Reproduces linear, formed by gradient of linear terms
– Well behaved under interpolation
– Cosine weighted direction of maximal visibility in AO
* *
1
4 (2 1)l
l lm lmm
g y s t l
Multiple LobesMultiple Lobes
Random vs. PRT SignalsRandom vs. PRT Signals
1.00E-10
1.00E-09
1.00E-08
1.00E-07
1.00E-06
1.00E-05
1.00E-04
1.00E-03
1.00E-02
1.00E-01
1.00E+00
0 1 2 3 4 5 6 7
Number of Lobes
Lo
g S
qu
ared
Err
or
Random Max
Random Avg
1.00E-10
1.00E-09
1.00E-08
1.00E-07
1.00E-06
1.00E-05
1.00E-04
1.00E-03
1.00E-02
1.00E-01
1.00E+00
0 1 2 3 4 5 6 7
Number of Lobes
Lo
g S
qu
ared
Err
or
Random Max
Random Avg
Scene Max
Scene Avg
Energy Distribution of Transfer SignalsEnergy Distribution of Transfer Signals
Energy Per Band
0%
5%
10%
15%
20%
25%
30%
35%
40%
45%
50%
0 1 2 3 4 5 6 7
Band
En
erg
y
Bump
Waffle
WaffleSS
WeaveDirect
WeaveIR
Swirls
Scene
Mayan
Effects of Subsurface
0%
10%
20%
30%
40%
50%
60%
0 1 2 3 4 5 6 7
Band
En
erg
y
Diffuse
SSA
SSB
Energy Distribution and Subsurface ScatterEnergy Distribution and Subsurface Scatter
RenderingRendering
• Rotate lobe axis, reconstruct transfer and dot with lighting
• Care must be taken when interpolating
– Non-linear parameters
– Lobe correspondence with multiple-lobes
* *
1 0
N n l
lm i ili l m l
y R s g
l
Light Specialized RenderingLight Specialized Rendering
* *
1 0
N n l
lm i ili l m l
y s g
l
Light Specialized RenderingLight Specialized Rendering
* *
1 0
N n l
lm i ili l m l
y s g
l
* *
1 0
N n l
lm i il lmi l m l
y s g l
Light Specialized RenderingLight Specialized Rendering
* *
1 0
N n l
lm i il lmi l m l
y s g l
* *
1 0
N n l
il lm i lmi l m l
g y s l
* *
1 0
N n l
lm i ili l m l
y s g
l
Light Specialized RenderingLight Specialized Rendering
* *
1 0
N n l
il lm i lmi l m l
g y s l
Light Specialized RenderingLight Specialized Rendering
O(N n2) → O(N n)
Quadratic
QuinticQuartic
Cubic
Generating LDPRT ModelsGenerating LDPRT Models
• PRT simulation over mesh
– texture: specify patch (a)
– per-vertex: specify mesh (b)
• Parameterized models
– ad-hoc using intuitive parameters (c)
– fit to simulation data (d)
(a) LDPRT texture
(b) LDPRT mesh(c) thin-membrane model (d) wrinkle model
LDPRT Texture PipelineLDPRT Texture Pipeline
• Start with “tileable” heightmap
• Simulate 3x3 grid
• Extract and fit LDPRT
• Store in texture maps
Thin Membrane ModelThin Membrane Model
• Single degree of freedom (DOF)
– “optical thickness”: light bleed in negative normal direction
Wrinkle ModelWrinkle Model
• Two DOF
– Phase, position along canonical wrinkle
Wrinkle ModelWrinkle Model
• Two DOF
– Phase, position along canonical wrinkle
– Amplitude, max magnitude of wrinkle
Wrinkle Model FitWrinkle Model Fit
• Compute several simulations
– 64 discrete amplitudes
– 255 unique points in phase
• Fit 32x32 textures
– One optimization for all DOF simultaneously
– Optimized for bi-linear reconstruction
– 3 lobes
Glossy LDPRTGlossy LDPRT
• Use separable BRDF
• Encode each “row” of transfer matrix using multiple lobes (3 lobes, 4th order lighting)
• See paper for details
DemoDemo
Conclusions/Future WorkConclusions/Future Work
• “local” global illumination effects
– soft shadows, inter-reflections, translucency
• easy-to-rotate rep. for spherical functions
– sums of rotated zonal harmonics
– allows dynamic geometry, real-time performance
– may be useful in other applications [Zhou2005]
• future work: non-local effects
– articulated characters
AcknowledgementsAcknowledgements
• Demos/Art: John Steed, Shanon Drone, Jason Sandlin
• Video: David Thiel
• Graphics Cards: Matt Radeki
• Light Probes: Paul Debevec