Radiance Caching for Global Illumination Computation on Glossy Surfaces A dissertation prepared by...
-
Upload
donna-cook -
Category
Documents
-
view
217 -
download
0
description
Transcript of Radiance Caching for Global Illumination Computation on Glossy Surfaces A dissertation prepared by...
Radiance Caching for Global Illumination Computation on Glossy Surfaces
A dissertation prepared by
Jaroslav Křivánekunder the joint supervision of
Kadi Bouatouch
IRISA, INRIA Rennes
Jiří Žára
Czech Technical University in Prague
and
Jaroslav Křivánek – Radiance Caching2/123
Presentation Topic Dissertation Title
Radiance Caching for Global Illumination Computation on Glossy Surfaces
GoalGlobal Illumination Computation
onGlossy Surfaces
MethodRadiance Caching
Jaroslav Křivánek – Radiance Caching3/123
Summary of Contributions Main contribution
Radiance caching algorithm [Křivánek et al. 2005a] More contributions
Translational radiance gradient computation [Křivánek et al. 2005a], [Křivánek et al. 2005b]
Fast spherical harmonics rotation [Křivánek et al. 2005c]
Adaptive refinement for radiance caching [to be submitted]
Solution of practical problems in radiance and irradiance caching [to be submitted]
Jaroslav Křivánek – Radiance Caching4/123
Goal Dissertation Title
Radiance Caching for Global Illumination Computation on Glossy Surfaces
GoalGlobal Illumination Computation
onGlossy Surfaces
MethodRadiance Caching
Jaroslav Křivánek – Radiance Caching5/123
Global Illumination?
Part of
Image synthesis, or rendering
Jaroslav Křivánek – Radiance Caching6/123
Rendering Create an image…
…of a scene.
Jaroslav Křivánek – Radiance Caching7/123
Different Approaches to Rendering Non-photorealistic rendering
Artistic styles Technical sketches Stress some information
Photo-realistic rendering Goal: images like reality Method: simulate the light
transport OUR TOPIC
Jaroslav Křivánek – Radiance Caching8/123
Photo-Realistic Rendering
How much light?
For each visible point p in the scene Compute the amount of light energy reflected
towards the camera
Jaroslav Křivánek – Radiance Caching9/123
Where Does the Light Come From? At p, the light comes from
Light sources (=direct) Reflected from scene surfaces (= indirect)
pp
Jaroslav Křivánek – Radiance Caching10/123
Global vs. Local Illumination Direct Illumination only
Light bounces ONCE on the way from source to camera
Global Illumination Global = Direct +
indirect Light transport between
scene surfaces Many bounces
Images © PDI/Dreamworks
Jaroslav Křivánek – Radiance Caching11/123
Global Illumination
Global = Direct + Indirect
Direct is (relatively) easy to compute
We focus on indirect
Jaroslav Křivánek – Radiance Caching12/123
Goal Dissertation Title
Radiance Caching for Global Illumination Computation on Glossy Surfaces
GoalIndirect Illumination Computation
onGlossy Surfaces
MethodRadiance Caching
Jaroslav Křivánek – Radiance Caching13/123
Goal Dissertation Title
Radiance Caching for Global Illumination Computation on Glossy Surfaces
GoalIndirect Illumination Computation
onGlossy Surfaces with Low-Frequency Reflectance
MethodRadiance Caching
Jaroslav Křivánek – Radiance Caching14/123
Surface Reflectance Described by the Bidirectional Reflectance
Distribution Function (BRDF)
BRDF at a point Function of two directions:
Incoming i Outgoing o
Ratio: outgoing radiance / incoming irradiance
Jaroslav Křivánek – Radiance Caching15/123
BRDF Types Diffuse (Lambertian)
View independent Specular
Mirror-like Glossy
Something “in between” Many different reflectance behaviors High frequency – sharp reflections Low frequency – blurry reflections We focus on low-frequency glossy BRDFs
Jaroslav Křivánek – Radiance Caching16/123
Various BRDFs Image courtesy Wojciech Matusik
Low-frequency
High-frequency
Image [Ngan2005]
Image [Ngan2005]
Jaroslav Křivánek – Radiance Caching17/123
Glossy Surfaces with Low-Frequency Reflectance Functions
Jaroslav Křivánek – Radiance Caching18/123
BRDF in Light Transport Light arrives at p Gets reflected (BRDF) Arrives at the camera
Reflection at p - BRDF
Jaroslav Křivánek – Radiance Caching19/123
Formal Description of Reflection Illumination integral
p
i
),( iiL p
iiioii
oo dBRDFLL cos),(),(),( pp
i
Jaroslav Křivánek – Radiance Caching20/123
Goal Goal
Indirect Illumination on Glossy Surfaces with Low-Frequency BRDFs
How Evaluate the illumination integral at each
visible point
But why? Is it important?
YES!
Jaroslav Křivánek – Radiance Caching21/123
Why Indirect Illumination on Glossy Surfaces?
With indirect Without indirect
Jaroslav Křivánek – Radiance Caching22/123
Why Indirect Illumination on Glossy Surfaces? Important for correct material perception
With indirect(looks like metal)
Without indirect(looks like plastic)
Jaroslav Křivánek – Radiance Caching23/123
Goal Dissertation Title
Radiance Caching for Global Illumination Computation on Glossy Surfaces
GoalIndirect Illumination Computation
onGlossy Surfaces with Low-Frequency BRDFs
MethodPrevious work
Radiance Caching
Jaroslav Křivánek – Radiance Caching24/123
Method Dissertation Title
Radiance Caching for Global Illumination Computation on Glossy Surfaces
GoalIndirect Illumination Computation
onGlossy Surfaces with Low-Frequency BRDFs
MethodPrevious work
Radiance Caching
Jaroslav Křivánek – Radiance Caching25/123
Previous Work – Radiosity Radiosity methods
Finite Elements Method applied to light transport Originally only for diffuse surface Extended to Glossy Surfaces, e.g., [Immel and
Hanrahan 1986], [Sillion et al. 1991], [Auperle et al. 1993]
Not practical for many reasons Problems with subdivision into elements High memory consumption Cannot produce high quality images by itself (need final
gathering)
Jaroslav Křivánek – Radiance Caching26/123
Previous Work – Monte Carlo Monte Carlo methods
e.g. [Cook et al. 1984], [Kajiya 1986], [Veach 1997]
Pros More general than radiosity Lower memory consumption
Cons Produce image noise Slow convergence rate
Jaroslav Křivánek – Radiance Caching27/123
Previous Work – Monte Carlo 40 samples per pixel
Image: Jason Lawrence, http://www.cs.princeton.edu/gfx/proj/brdf/
Jaroslav Křivánek – Radiance Caching28/123
Previous Work – Monte Carlo 100 samples per pixel
Image: Jason Lawrence, http://www.cs.princeton.edu/gfx/proj/brdf/
Jaroslav Křivánek – Radiance Caching29/123
Previous Work – Monte Carlo 300 samples per pixel
Image: Jason Lawrence, http://www.cs.princeton.edu/gfx/proj/brdf/
Jaroslav Křivánek – Radiance Caching30/123
Previous Work – Monte Carlo 600 samples per pixel
Image: Jason Lawrence, http://www.cs.princeton.edu/gfx/proj/brdf/
Jaroslav Křivánek – Radiance Caching31/123
Previous Work – Monte Carlo 1200 samples per pixel
Image: Jason Lawrence, http://www.cs.princeton.edu/gfx/proj/brdf/
Jaroslav Křivánek – Radiance Caching32/123
Previous Work – Monte Carlo Variance Reduction: BRDF Importance sampling
Works very well for high-frequency BRDFs
Does not help much for low-frequency BRDFs
Radiance caching complements importance sampling
Jaroslav Křivánek – Radiance Caching33/123
Previous Work – Photon Mapping Photon map [Wann Jensen 2001]
crude representation of indirect illumination
Final gathering is needed
Radiance caching works for final gathering
Radiance caching complements photon mapping
Jaroslav Křivánek – Radiance Caching34/123
Previous Work – Interpolation If illumination changes slowly, one can
interpolate Techniques suitable for glossy surfaces
Radiosity methods are based on interpolation [Bala et al. 1999]
Only for deterministic ray tracing [Smyk et al. 2005]
Costly re-projection of radiance samples [Durand et al. 2005]
Image-based technique, does not produce good results yet
Jaroslav Křivánek – Radiance Caching35/123
Previous Work – Interpolation Irradiance caching [Ward et al. 88, Ward and
Heckbert 1992]
Basis for our algorithm
Diffuse term only
Radiance caching extends this algorithm for the use on glossy surfaces
Jaroslav Křivánek – Radiance Caching36/123
Method Dissertation Title
Radiance Caching for Global Illumination Computation on Glossy Surfaces
GoalIndirect Illumination Computation
onGlossy Surfaces with Low-Frequency BRDFs
MethodPrevious work
Radiance Caching
Jaroslav Křivánek – Radiance Caching37/123
Method Dissertation Title
Radiance Caching for Global Illumination Computation on Glossy Surfaces
GoalIndirect Illumination Computation
onGlossy Surfaces with Low-Frequency BRDFs
MethodPrevious work
Radiance Caching
Jaroslav Křivánek – Radiance Caching38/123
Radiance Caching – Overview Caching scheme Incoming radiance representation Interpolation Outgoing radiance computation Gradient computation Fast spherical harmonics rotation Adaptive radiance caching Results Conclusions
Jaroslav Křivánek – Radiance Caching39/123
Radiance Caching – Overview Caching scheme Incoming radiance representation Interpolation Outgoing radiance computation Gradient computation Fast spherical harmonics rotation Adaptive radiance caching Results Conclusions
Jaroslav Křivánek – Radiance Caching40/123
Radiance Caching – Overview Caching scheme Incoming radiance representation Interpolation Outgoing radiance computation Gradient computation Fast spherical harmonics rotation Adaptive radiance caching Results Conclusions
Jaroslav Křivánek – Radiance Caching41/123
Radiance Caching – Overview Caching scheme Incoming radiance representation Interpolation Outgoing radiance computation Gradient computation Fast spherical harmonics rotation Adaptive radiance caching Results Conclusions
Jaroslav Křivánek – Radiance Caching42/123
Radiance Caching – Overview Caching scheme Incoming radiance representation Interpolation Outgoing radiance computation Gradient computation Fast spherical harmonics rotation Adaptive radiance caching Results Conclusions
Jaroslav Křivánek – Radiance Caching43/123
Radiance Caching – Overview Caching scheme Incoming radiance representation Interpolation Outgoing radiance computation Gradient computation Fast spherical harmonics rotation Adaptive radiance caching Results Conclusions
Jaroslav Křivánek – Radiance Caching44/123
Radiance Caching – Overview Caching scheme Incoming radiance representation Interpolation Outgoing radiance computation Gradient computation Fast spherical harmonics rotation Adaptive radiance caching Results Conclusions
Jaroslav Křivánek – Radiance Caching45/123
Radiance Caching – Overview Caching scheme Incoming radiance representation Interpolation Outgoing radiance computation Gradient computation Fast spherical harmonics rotation Adaptive radiance caching Results Conclusions
Jaroslav Křivánek – Radiance Caching46/123
Radiance Caching – Overview Caching scheme Incoming radiance representation Interpolation Outgoing radiance computation Gradient computation Fast spherical harmonics rotation Adaptive radiance caching Results Conclusions
Jaroslav Křivánek – Radiance Caching47/123
Radiance Caching – Overview Caching scheme Incoming radiance representation Interpolation Outgoing radiance computation Gradient computation Fast spherical harmonics rotation Adaptive radiance caching Results Conclusions
Jaroslav Křivánek – Radiance Caching48/123
Radiance Caching – Overview Caching scheme Incoming radiance representation Interpolation Outgoing radiance computation Gradient computation Fast spherical harmonics rotation Adaptive radiance caching Results Conclusions
Jaroslav Křivánek – Radiance Caching49/123
Motivation Indirect lighting on glossy surfaces with low-
frequency BRDFs is rather smooth
Jaroslav Křivánek – Radiance Caching50/123
Radiance Caching Scheme Sparse computation of indirect illumination Interpolation Enhanced with gradients
Jaroslav Křivánek – Radiance Caching51/123
Radiance Caching Scheme
SceneRadiance
Cache
p1
Radiance cache lookup
CacheMiss!
Samplehemisphere
Project onto (hemi)spherical
harmonics
p1
Store incache
Lo=∫ · BRDF(p1) · cos θ dωLo(p1)p2
Radiancecachelookup
Lo(p2)=∫ · BRDF(p2) · cos θ dωLo(P2)
Jaroslav Křivánek – Radiance Caching52/123
Radiance Caching Scheme
Jaroslav Křivánek – Radiance Caching53/123
Radiance Caching – Overview Caching scheme Incoming radiance representation Interpolation Outgoing radiance computation Gradient computation Fast spherical harmonics rotation Adaptive radiance caching Results Conclusions
Jaroslav Křivánek – Radiance Caching54/123
Radiance Caching – Overview Caching scheme Incoming radiance representation Interpolation Outgoing radiance computation Gradient computation Fast spherical harmonics rotation Adaptive radiance caching Results Conclusions
Jaroslav Křivánek – Radiance Caching55/123
Incoming Radiance Representation
= Li()
Directional distribution of incoming radiance at a point Function on the hemisphere
Requirements Allows rotation Fast evaluation of illumination integral Smooth (no aliasing) Compact
Jaroslav Křivánek – Radiance Caching56/123
Incoming Radiance Representation Spherical harmonics
Jaroslav Křivánek – Radiance Caching57/123
Incoming Radiance Representation Hemipherical harmonics [Gautron et al. 2004]
Jaroslav Křivánek – Radiance Caching58/123
Incoming Radiance Representation
represented by a vector of coefficients:
11
01
00
][
nn
ml
1
0
)()(n
l
lm
lm
ml
ml
i HL
Jaroslav Křivánek – Radiance Caching59/123
Incoming Radiance Representation Given L, how to find the coefficients?
Projection (of L onto the basis)
d)()(
ml
iml HL
Jaroslav Křivánek – Radiance Caching60/123
Incoming Radiance Representation Projection integral computed with Monte Carlo
quadrature Hemisphere
sampling
1
0
1
0,, )(2 M
j
N
kkj
ml
ikj
ml HL
NM
Sum over all cells
Incoming radiance from the sampled direction
Multiplied by thebasis function
Jaroslav Křivánek – Radiance Caching61/123
Incoming Radiance Representation Why the harmonics?
Efficient rotation !!!
Smooth representation
Low memory consumption
Easy to use
Jaroslav Křivánek – Radiance Caching62/123
Radiance Caching – Overview Caching scheme Incoming radiance representation Interpolation Outgoing radiance computation Gradient computation Fast spherical harmonics rotation Adaptive radiance caching Results Conclusions
Jaroslav Křivánek – Radiance Caching63/123
Radiance Caching – Overview Caching scheme Incoming radiance representation Interpolation Outgoing radiance computation Gradient computation Fast spherical harmonics rotation Adaptive radiance caching Results Conclusions
Jaroslav Křivánek – Radiance Caching64/123
Interpolation
How to interpolate a function? Interpolate coefficient vectors 1 and 2
p1
p2p
Jaroslav Křivánek – Radiance Caching65/123
Interpolation for each coefficient vector used in interpolation
do
1. Adjust by translational gradient
2. Rotate to align coordinate frame
3. Update the weighted average
Jaroslav Křivánek – Radiance Caching66/123
Interpolation Align coordinate frames in interpolation
p
p1
R
Jaroslav Křivánek – Radiance Caching67/123
Interpolation Weighted average
Weight wi(p) borrowed from [Ward88] Records used for interpolation:
a … user defined allowed approximation error
)()()()()(
21
''22
''11
intp ppppp
wwww
awi /1)( p
Jaroslav Křivánek – Radiance Caching68/123
Radiance Caching – Overview Caching scheme Incoming radiance representation Interpolation Outgoing radiance computation Gradient computation Fast spherical harmonics rotation Adaptive radiance caching Results Conclusions
Jaroslav Křivánek – Radiance Caching69/123
Radiance Caching – Overview Caching scheme Incoming radiance representation Interpolation Outgoing radiance computation Gradient computation Fast spherical harmonics rotation Adaptive radiance caching Results Conclusions
Jaroslav Křivánek – Radiance Caching70/123
Outgoing Radiance Computation Lo(p,o) is the final product Given by the Illumination Integral
i.e. Integrate x BRDF
is interpolated BRDF is known
iiioii
oo dBRDFLL cos),(),(),( pp
Jaroslav Křivánek – Radiance Caching71/123
Outgoing Radiance Computation
Incident Radiance BRDF
= coeff. dot product
BRDF represented by (hemi)spherical harmonics Orthonormal basis
( )
Jaroslav Křivánek – Radiance Caching72/123
Radiance Caching – Overview Caching scheme Incoming radiance representation Interpolation Outgoing radiance computation Gradient computation Fast spherical harmonics rotation Adaptive radiance caching Results Conclusions
Jaroslav Křivánek – Radiance Caching73/123
Radiance Caching – Overview Caching scheme Incoming radiance representation Interpolation Outgoing radiance computation Gradient computation Fast spherical harmonics rotation Adaptive radiance caching Results Conclusions
Jaroslav Křivánek – Radiance Caching74/123
Why Gradients?
Reality
p1 p
With radiance caching
p1 p
Li(p1) Li(p1) != Li(p)Wrong extrapolation
= Li(p)
Jaroslav Křivánek – Radiance Caching75/123
Wrong Extrapolation How does Li(p) change with p?
First approximation: Translational radiance gradient
Our contribution New radiance gradient computation methods
Jaroslav Křivánek – Radiance Caching76/123
Wrong Extrapolation
Jaroslav Křivánek – Radiance Caching77/123
Corrected with Gradients
Jaroslav Křivánek – Radiance Caching78/123
Gradient Computation Two new methods proposed
1. Solid angle-based [Krivanek et al. 2005a]
2. Stratification-based [Krivanek et al. 2005b] Better results (=smoother interpolation) Will be described in what follows
Jaroslav Křivánek – Radiance Caching79/123
Gradient Computation Coefficients – hemisphere sampling
Gradients – the same hemisphere sampling Something like
1
0
1
0,,, ),(2 M
j
N
kkjkj
ml
ikj
ml HL
NM
1
0
1
0, ......
M
j
N
k
ikj
ml L
Jaroslav Křivánek – Radiance Caching80/123
Previous Work – Polygonal Emitters
[Arvo 1994] Irradiance Jacobian due to partially occluded
polygonal emitters of constant radiosity
[Holzschuch and Sillion 1995] Polygonal emitters of arbitrary radiosity
Jaroslav Křivánek – Radiance Caching81/123
Previous Work – Hemisphere Sampling [Ward and Heckbert 1992] “Irradiance gradients”
Specifically for irradiance Cosine-proportional, uniformly weighted samples over
the hemisphere We extend this to uniformly distributed, arbitrarily
weighted samples [Annen et al. 2004]
Equivalent to our solid angle-based gradient Works mostly fine, except when there is occlusion in
the sampled environment Stratification-based grad. improves the quality of this
Jaroslav Křivánek – Radiance Caching82/123
Our Gradient Computation
1. Compute gradient from each hemisphere cell
2. Sum it all together
Jaroslav Křivánek – Radiance Caching83/123
Gradient Computation for One Cell
Jaroslav Křivánek – Radiance Caching84/123
Translation along L
pp’
Wall movement
Jaroslav Křivánek – Radiance Caching85/123
Gradient Computation for One Cell
Wall movement cell area changes
Cell area change solid angle changes
Solid angle change incoming radiance changes
Jaroslav Křivánek – Radiance Caching86/123
Gradient Computation – Putting it all Together Sum incoming radiance changes from all cells Use the basis functions H as a weighting factor
Basis functions do not change with displacement
Cell area changeIncoming radiance change
Weight by thebasis functionSum together
Jaroslav Křivánek – Radiance Caching87/123
Gradient Computation – Results
Solid-angle based grad. Stratification-based grad.
Jaroslav Křivánek – Radiance Caching88/123
Gradient Computation – Results
Stratification-based grad.Solid-angle based grad.
Jaroslav Křivánek – Radiance Caching89/123
Gradient Computation – Results
Solid-angle based grad.
Jaroslav Křivánek – Radiance Caching90/123
Gradient Computation – Results
Stratification-based grad.
Jaroslav Křivánek – Radiance Caching91/123
Radiance Caching – Overview Caching scheme Incoming radiance representation Interpolation Outgoing radiance computation Gradient computation Fast spherical harmonics rotation Adaptive radiance caching Results Conclusions
Jaroslav Křivánek – Radiance Caching92/123
Radiance Caching – Overview Caching scheme Incoming radiance representation Interpolation Outgoing radiance computation Gradient computation Fast spherical harmonics rotation Adaptive radiance caching Results Conclusions
Jaroslav Křivánek – Radiance Caching93/123
SH Rotation – Summary Novel, fast, approximate rotation Based on a truncated Taylor Expansion of the
SH rotation matrix 4-6 times faster than [Kautz et al. 2002] Accurate enough for the use in radiance caching Application in real-time shading
Jaroslav Křivánek – Radiance Caching94/123
Radiance Caching – Overview Caching scheme Incoming radiance representation Interpolation Outgoing radiance computation Gradient computation Fast spherical harmonics rotation Adaptive radiance caching Results Conclusions
Jaroslav Křivánek – Radiance Caching95/123
Radiance Caching – Overview Caching scheme Incoming radiance representation Interpolation Outgoing radiance computation Gradient computation Fast spherical harmonics rotation Adaptive radiance caching Results Conclusions
Jaroslav Křivánek – Radiance Caching96/123
Adaptive Radiance Caching If rate of change of illumination is high and not
enough records interpolation artifacts
Jaroslav Křivánek – Radiance Caching97/123
Adaptive Radiance Caching Adaptive caching prevents interpolation artifacts
Jaroslav Křivánek – Radiance Caching98/123
Adaptive Radiance Caching Current record density criterion
Borrowed from irradiance caching
Designed for diffuse indirect term
Based solely on the scene geometry
Might fail for glossy term
Jaroslav Křivánek – Radiance Caching99/123
Adaptive Radiance Caching Rate of change of illumination on glossy
surfaces depends on Actual illumination conditions BRDF sharpness Viewing direction
Record density criterion would be too complicated
We propose adaptive criterion Based on a simple perceptual metric
Jaroslav Křivánek – Radiance Caching100/123
Adaptive Radiance Caching Our approach
If discontinuity detected in the overlap area Decrease radius
p1 p2
p
If | L1(p) – L2(p) | > then decrease radius Based on the Weber law
Jaroslav Křivánek – Radiance Caching101/123
Adaptive Caching – Results Without adaptive caching – interpolation artifacts
Jaroslav Křivánek – Radiance Caching102/123
Adaptive Caching – Results With adaptive caching – smooth interpolation
Jaroslav Křivánek – Radiance Caching103/123
Adaptive Caching – Results
Jaroslav Křivánek – Radiance Caching104/123
Adaptive Caching – Results
Non-adaptive caching
Jaroslav Křivánek – Radiance Caching105/123
Adaptive Caching – Results
Adaptive caching
Jaroslav Křivánek – Radiance Caching106/123
Adaptive Caching – Results
Jaroslav Křivánek – Radiance Caching107/123
Adaptive Caching – Results Adaptation to BRDF sharpness
Jaroslav Křivánek – Radiance Caching108/123
Adaptive Caching – Results Adaptation to BRDF sharpness
Jaroslav Křivánek – Radiance Caching109/123
Adaptive Caching – Results Adaptation to BRDF sharpness
Jaroslav Křivánek – Radiance Caching110/123
Radiance Caching – Overview Caching scheme Incoming radiance representation Interpolation Outgoing radiance computation Gradient computation Fast spherical harmonics rotation Adaptive radiance caching Results Conclusions
Jaroslav Křivánek – Radiance Caching111/123
Radiance Caching – Overview Caching scheme Incoming radiance representation Interpolation Outgoing radiance computation Gradient computation Fast spherical harmonics rotation Adaptive radiance caching Results Conclusions
Jaroslav Křivánek – Radiance Caching112/123
Results
Direct vs. Indirect illumination video
Radiance caching vs. Monte Carlo video
Jaroslav Křivánek – Radiance Caching113/123
Results – Radiance Caching vs. Monte Carlo
Jaroslav Křivánek – Radiance Caching114/123
Results – Radiance Caching vs. Monte Carlo
Jaroslav Křivánek – Radiance Caching115/123
Results
Walt Disney Hall video
Jaroslav Křivánek – Radiance Caching116/123
Radiance Caching – Overview Caching scheme Incoming radiance representation Interpolation Outgoing radiance computation Gradient computation Fast spherical harmonics rotation Adaptive radiance caching Results Conclusions
Jaroslav Křivánek – Radiance Caching117/123
Radiance Caching – Overview Caching scheme Incoming radiance representation Interpolation Outgoing radiance computation Gradient computation Fast spherical harmonics rotation Adaptive radiance caching Results Conclusions
Jaroslav Křivánek – Radiance Caching118/123
Conclusions Main contribution: Radiance Caching
Ray tracing based algorithm for computing indirect illumination on glossy surfaces with low-frequency BRDFs
Extends irradiance caching [Ward et al. 1988], [Ward and Heckbert 1992]
Allows interpolation on surfaces with view-dependent BRDF
Jaroslav Křivánek – Radiance Caching119/123
Conclusions …Radiance Caching
Compared to radiosity More general and robust lower memory consumption
Compared to pure Monte Carlo Faster Suppresses noise
Jaroslav Křivánek – Radiance Caching120/123
Conclusions More contributions
1. Two new methods for translational radiance gradient computation
2. Fast spherical harmonics rotation3. Adaptive refinement for radiance caching4. Solution of practical problems in radiance
and irradiance caching
Solve sub-problems of radiance caching 1. and 2. can be used for other purposes
Jaroslav Křivánek – Radiance Caching121/123
Future Work Much to do to arrive at images like this one…
Jaroslav Křivánek – Radiance Caching122/123
Future Work Adaptive hemisphere sampling Use of localized basis for incoming radiance
representation (e.g. wavelets) Sample only important part of the hemisphere
Use frequency analysis of light transport [Durand et al. 2005] to Design a better interpolation error criterion of
radiance caching Classify transport path and choose the most
suitable means for solving each class
Jaroslav Křivánek – Radiance Caching123/123
Thank You for your Attention
? ?
Jaroslav Křivánek – Radiance Caching124/123
Bibliography [Křivánek et al. 2005a] Jaroslav Křivánek, Pascal Gautron,
Sumanta Pattanaik, and Kadi Bouatouch. Radiance caching for efficient global illumination computation. IEEE Transactions on Visualization and Computer Graphics, 11(5), September/October 2005.
[Křivánek et al. 2005b] Jaroslav Křivánek, Pascal Gautron, Kadi Bouatouch, and Sumanta Pattanaik. Improved radiance gradient computation. In SCCG ’05: Proceedings of the 21th spring conference on Computer graphics. ACM Press, 2005.
[Křivánek et al. 2005c] Jaroslav Křivánek, Jaakko Konttinen, Sumanta Pattanaik, and Kadi Bouatouch. Fast approximation to spherical harmonic rotation. Technical Report 1728, IRISA, Rennes, France, July 2005.
[Gautron et al. 2004] Pascal Gautron, Jaroslav Křivánek, Kadi Bouatouch, and Sumanta N. Pattanaik. Radiance cache splatting: A GPU-friendly global illumination algorithm. In Rendering Techniques 2005, Eurographics Symposium on Rendering, June 2005.
Jaroslav Křivánek – Radiance Caching125/123
Bibliography [Immel et al. 1986] David S. Immel, Michael F. Cohen, and
Donald P. Greenberg. A radiosity method for non-diffuse environments. In SIGGRAPH ’86 Proceedings, pages 133–142, New York, NY, USA, 1986. ACM Press.
[Sillion et al. 1991] François Sillion, James R. Arvo, Spehne H. Westin, and Donald P. Greenberg. A global illumination solution for general reflectance distributions. In SIGGRAPH ’91 Proceedings, pages 187–196, New York, NY, USA, 1991. ACM Press.
[Auperle and Hanrahan 1993] Larry Aupperle and Pat Hanrahan. A hierarchical illumination algorithm for surfaces with glossy reflection. In SIGGRAPH ’93 Proceedings, pages 155–162, New York, NY, USA, 1993. ACM Press.
[Cook et al. 1984] Robert L. Cook, Thomas Porter, and Loren Carpenter. Distributed ray tracing. In SIGGRAPH ’84 Proceedings, pages 137–145, 1984.
Jaroslav Křivánek – Radiance Caching126/123
Bibliography [Kajiya 1986] James T. Kajiya. The rendering equation. In
SIGGRAPH ’86 Proceedings, pages 143–150, New York, NY, USA, 1986. ACM Press.
[Veach 1997] Eric Veach. Robust Monte Carlo Methods for Light Transport Simulation. PhD thesis, Stanford Universty, December 1997.
[Bala et al. 1999] Kavita Bala, Julie Dorsey, and Seth Teller. Radiance interpolants for accelerated bounded-error ray tracing. ACM Trans. Graph., 18(3):213–256, 1999.
[Smyk et al. 2005] Miłosław Smyk, Shin ichi Kinuwaki, Roman Durikovic, and Karol Myszkowski. Temporally coherent irradiance caching for high quality animation rendering. Computer Graphics Forum (Proceedings of EUROGRAPHICS ’05), 24(3), 2005.
Jaroslav Křivánek – Radiance Caching127/123
Bibliography [Durand et al. 2005] Frédo Durand, Nicolas Holzschuch, Cyril
Soler, Eric Chan, and François X. Sillion. A frequency analysis of light transport. ACM Trans. Graph. (Proceedings of SIGGRAPH 2005), 24(3):1115–1126, 2005.
[Ward et al. 1988] Gregory J. Ward, Francis M. Rubinstein, and Robert D. Clear. A ray tracing solution for diffuse interreflection. In SIGGRAPH ’88 Proceedings, pages 85–92, New York, NY, USA, 1988. ACM Press.
[Ward and Heckbert 1992] Gregory J. Ward and Paul S. Heckbert. Irradiance gradients. In Proceedings of the Third Eurographics Workshop on Rendering, pages 85–98, 1992.
[Arvo 1994] James Arvo. The irradiance Jacobian for partially occluded polyhedral sources. In SIGGRAPH ’94 Proceedings, pages 343–350, New York, NY, USA, 1994. ACM Press.
Jaroslav Křivánek – Radiance Caching128/123
Bibliography [Holzschuch and Sillion 1995] Nicolas Holzschuch and François
Sillion. Accurate computation of the radiosity gradient with constant and linear emitters. In Sixth Eurographics Workshop on Rendering, June 1995.
[Annen et al. 2004] Thomas Annen, Jan Kautz, Frédo Durand, and Hans-Peter Seidel. Spherical harmonic gradients for mid-range illumination. In Proceedings of the Eurographics Symposium on Rendering 2004, pages 331–336. Eurographics Association, 2004.
[Ivanic and Ruedenberg 1996] Joseph Ivanic and Klaus Ruedenberg. Rotation matrices for real spherical harmonics. direct determination by recursion. J. Phys. Chem., 100(15):6342–6347, 1996.Joseph Ivanic and Klaus Ruedenberg. Additions and corrections : Rotation matrices for real spherical harmonics. J. Phys. Chem. A, 102(45):9099–9100, 1998.
Jaroslav Křivánek – Radiance Caching129/123
Bibliography [Choi et al. 1999] Cheol Ho Choi, Joseph Ivanic, Mark S.
Gordon, and Klaus Ruedenberg. Rapid and stable determination of rotation matrices between spherical harmonics by direct recursion. J. Chem. Phys., 111(19):8825–8831, 1999.
[Kautz et al. 2002] Jan Kautz, Peter-Pike Sloan, and John Snyder. Fast, arbitrary BRDF shading for low-frequency lighting using spherical harmonics. In Proceedings of the 13th Eurographics workshop on Rendering, pages 291–296. Eurographics Association, 2002.
Jaroslav Křivánek – Radiance Caching130/123
Appendix – Fast Spherical Harmonics Rotation Caching scheme Incoming radiance representation Interpolation Outgoing radiance computation Gradient computation Fast spherical harmonics rotation Adaptive radiance caching Results Conclusions
Jaroslav Křivánek – Radiance Caching131/123
Why Rotation? Align coordinate frames in interpolation
p
p1
R
Jaroslav Křivánek – Radiance Caching132/123
SH Rotation – Problem Definition
Given a spherical function , represented
by coefficients ,
find coefficients , representing .
Jaroslav Křivánek – Radiance Caching133/123
SH Rotation Matrix SH invariant w.r.t. the rotation
Given a 3D rotation, find the matrix R
R
Jaroslav Křivánek – Radiance Caching134/123
SH Rotation – Previous Work Molecular Chemistry
[Ivanic and Ruedenberg 1996] [Choi et al. 1999]
Computer Graphics [Kautz et al. 2002]
O(n3) complexity Slow Bottleneck of interpolation
Jaroslav Křivánek – Radiance Caching135/123
SH Rotation – Our Contribution Fast, approximate rotation [Křivánek et al.
2005c]
Based on replacing the SH rotation matrix by its Taylor expansion
4-6 times faster than [Kautz et al. 2002]
Jaroslav Křivánek – Radiance Caching136/123
Rotation Procedure Decompose the 3D rotation into ZYZ Euler
angles: R = RZ() RY() RZ()
Rotation around Z is simple and fast
Rotation around Y still a problem
Jaroslav Křivánek – Radiance Caching137/123
Rotation Procedure – Taylor Expansion
)0(2
)0()( 2
22
dd
dd yy
y
RRIR
Jaroslav Křivánek – Radiance Caching138/123
Rotation Procedure – Taylor Expansion
)0(2
)0()( 2
22
dd
dd yy
y
RRIR
Jaroslav Křivánek – Radiance Caching139/123
Rotation Procedure – Taylor Expansion
)0(2
)0()( 2
22
dd
dd yy
y
RRIR
“1.5-th order Taylor expansion”
Very sparse matrix
Jaroslav Křivánek – Radiance Caching140/123
Rotation Procedure
1. Decompose the 3D rotation into ZYZ Euler angles: R = RZ() RY() RZ()
2. Rotate around Z by
3. Use the “1.5-th order” Taylor expansion to rotate around Y by
4. Rotate around Z by
Jaroslav Křivánek – Radiance Caching141/123
SH Rotation – Results L2 error for a
unit length input vector
Jaroslav Křivánek – Radiance Caching142/123
SH Rotation – Results
Jaroslav Křivánek – Radiance Caching143/123
SH Rotation – Results