![Page 1: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/1.jpg)
![Page 2: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/2.jpg)
Rendering under environment lighting
π’/π¨: incoming/view directions
Brute-force computation Resolution: 6*64*64
Needs 6*64*64 times for each point!
πΏ π¨ = ΰΆ±Ξ©
πΏ π’ π π’ π π’, π¨ max(0, π β π’) dπ’
BRDFlighting visibility
![Page 3: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/3.jpg)
Precomputed Radiance Transfer (PRT)
Introduced by Sloan in SIGGRAPH 2002
Precomputed Radiance Transfer for Real-Time Rendering in Dynamic, Low-Frequency Lighting Environments [Sloan 02]
![Page 4: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/4.jpg)
Basic idea of PRT [Sloan 02]
Approximate lighting using basis functions πΏ π’ β Ο πππ΅π(π’)
Precomputation stage compute light transport, and project to basis function space
Runtime stage dot product (diffuse) or matrix-vector multiplication (glossy)
πΏ π¨ = ΰΆ±Ξ©
πΏ π’ π π’ π π’, π¨ max(0, π β π’) dπ’
light transportlighting
![Page 5: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/5.jpg)
Diffuse Case
Reduce rendering computation to dot product
πΏ π¨ = πΰΆ±Ξ©
πΏ π’ π π’ max(0, π β π’) dπ’
πΏ π’ βπππ΅π(π’)
basis
function
lighting
coefficientπΏ π¨ β πππΰΆ±
Ξ©
Bπ π’ π π’ max(0, π β π’) dπ’
πΏ π¨ β πππππ
Precompute
![Page 6: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/6.jpg)
Basis functions π΅(π’) Spherical Harmonics (SH)
SH have nice properties:
orthonormal
simple projection/reconstruction
rotationally invariant (no aliasing)
simple rotation
simple convolution
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
![Page 7: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/7.jpg)
Basis functions π΅(π’) Spherical Harmonics (SH)
Light Approximation Examples
Low frequency
![Page 8: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/8.jpg)
Basis functions π΅(π’)
SH is orthonormal, we have:
ΰΆ±Ξ©
π΅π π’ β π΅π π’ dπ’ = π (π’ = π)
ΰΆ±Ξ©
π΅π π’ β π΅π π’ dπ’ = π π’ β π
![Page 9: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/9.jpg)
Basis functions π΅(π’)
Projection to SH space
Reconstruction
πΏ π’ βπππ΅π(π’)
ππ = ΰΆ±Ξ©
πΏ π’ β π΅π π’ dπ’
lighting lighting coefficients
Original space SH space
πΏ π’ β πππ΅π(π’)
![Page 10: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/10.jpg)
Precomputationππ β ΰΆ±
Ξ©
Bπ π’ π π’ max(0, π β π’) dπ’light transport
Basis 16
Basis 17
Basis 18
illuminate result
...
...
No shadow/ shadow/ inter-reflection
![Page 11: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/11.jpg)
Run-time Rendering
Rendering at each point is reduced to a dot product
First, project the lighting to the basis to obtain ππ Or, rotate the lighting instead of re-projection
Then, compute the dot product
Real-time: easily implemented in shader
πΏ π¨ β πππππ
![Page 12: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/12.jpg)
Diffuse Rendering Results
No Shadows Shadows Shadows+Inter
![Page 13: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/13.jpg)
Glossy Case
Rendering: vector-matrix multiplication
πΏ π¨ = ΰΆ±Ξ©
πΏ π’ π π’ π π’, π¨ max(0, π β π’) dπ’
πΏ π¨ βππππ(π¨)ππ π¨ β π‘πππ΅π(π¨)
basis
function
transport
matrix
πΏ π¨ β Ο Ο πππ‘ππ π΅π(π¨)
β βtransport
matrix
light coefficientreflected radiance
coefficient
![Page 14: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/14.jpg)
Time Complexity
#SH Basis : 9/16/25
Diffuse Rendering
At each point: dot-product of size 16
Glossy Rendering
At each point: vector(16) * matrix (16*16)
![Page 15: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/15.jpg)
Glossy Rendering Results
No Shadows/Inter Shadows Shadows+Inter
β’ Glossy object, 50K mesh
β’ Runs at 3.6 fps on 2.2Ghz P4, ATI Radeon 8500
![Page 16: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/16.jpg)
Interreflections and Caustics
* * *( ( | ))LS S D G P
LP
*( | )L D G P
none 1 bounce 2 bounces
caustics
interreflections
LGP
Transport Paths
Runtime is independent
of transport complexity
![Page 17: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/17.jpg)
Arbitrary BRDF Results
Other BRDFs Spatially VaryingAnisotropic BRDFs
![Page 18: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/18.jpg)
Results
![Page 19: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/19.jpg)
Summary of [Sloan 02]
Approximate Lighting and light transport using basis functions (SH)
Lighting -> lighting coefficients
light transport -> coefficients / matrices
Precompute and store light transport
Rendering reduced to:
Diffuse: dot product
Glossy: vector matrix multiplication
![Page 20: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/20.jpg)
Limitations [Sloan 02]
Low-frequency
Due to the nature of SH
Dynamic lighting, but static scene/material
Changing scene/material invalidates precomputed light transport
Big precomputation data
![Page 21: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/21.jpg)
Follow up works
More basis functions
dot product => triple products
Static scene => dynamic scene
Fix material => dynamic material
Other effects: translucent, hair, β¦
Precomputation => analytic computation
β¦
![Page 22: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/22.jpg)
More basis functions
Spherical Harmonics (SH)
Wavelet
Zonal Harmonics
Spherical Gaussian (SG)
Piecewise Constant
![Page 23: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/23.jpg)
Wavelet [Ng 03]
2D Haar wavelet
Projection: Wavelet Transformation
Retain a small number of non-zero coefficients
A non-linear approximation
All-frequency representation
![Page 24: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/24.jpg)
low frequency vs all frequencyTeapot in Grace Cathedral
All frequency (Wavelet)Low frequency (SH)
![Page 25: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/25.jpg)
Relighting as Matrix-Vector Multiply
1
2
3
N
P
P
P
P
M
11 12 1
1
21 22 2
2
31 32 3
1 2
M
M
M
N
N N NM
T T TL
T T TL
T T T
LT T T
L
L
LM
M M O M
L
![Page 26: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/26.jpg)
Relighting as Matrix-Vector Multiply
1
2
3
N
P
P
P
P
M
11 12 1
1
21 22 2
2
31 32 3
1 2
M
M
M
N
N N NM
T T TL
T T TL
T T T
LT T T
L
L
LM
M M O M
L
Input Lighting(Cubemap Vector)
Output Image
(Pixel Vector)
Transport
Matrix
![Page 27: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/27.jpg)
Non-linear Wavelet Light Approximation
Wavelet Transform
![Page 28: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/28.jpg)
1
2
3
4
5
6
N
L
L
L
L
L
L
L
M
2
6
0
0
0
0
0
L
L
M
Non-linear Wavelet Light Approximation
Non-linear
Approximation
Retain 0.1% β 1% terms
![Page 29: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/29.jpg)
11 12 13 14 1
21 22 23 24 2
31 32 24 34 3
41 42 43 44 4
51 52 53 54 5
61 62 63 64 6
7
1 2 3 4
M
M
M
M
M
M
M
N N N N NM
T T T T T
T T T T T
T T T T T
T T T T T
T T T T T
T T T T T
T
T T T T T
L
L
L
L
L
L
M M M M O
L
Matrix Row Wavelet Encoding
![Page 30: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/30.jpg)
11 12 13 14 1
21 22 23 24 2
31 32 24 34 3
41 42 43 44 4
51 52 53 54 5
61 62 63 64 6
7
1 2 3 4
M
M
M
M
M
M
M
N N N N NM
T T T T T
T T T T T
T T T T T
T T T T T
T T T T T
T T T T T
T
T T T T T
L
L
L
L
L
L
M M M M O
L
Extract Row
Matrix Row Wavelet Encoding
![Page 31: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/31.jpg)
11 12 13 14 1
21 22 23 24 2
31 32 24 34 3
41 42 43 44 4
51 52 53 54 5
61 62 63 64 6
7
1 2 3 4
M
M
M
M
M
M
M
N N N N NM
T T T T T
T T T T T
T T T T T
T T T T T
T T T T T
T T T T T
T
T T T T T
L
L
L
L
L
L
M M M M O
L
Wavelet Transform
Matrix Row Wavelet Encoding
![Page 32: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/32.jpg)
Wavelet Transform
11 12 13 14 1
21 22 23 24 2
31 32 24 34 3
41 42 43 44 4
51 52 53 54 5
61 62 63 64 6
7
1 2 3 4
M
M
M
M
M
M
M
N N N N NM
T T T T T
T T T T T
T T T T T
T T T T T
T T T T T
T T T T T
T
T T T T T
L
L
L
L
L
L
M M M M O
L
Matrix Row Wavelet Encoding
![Page 33: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/33.jpg)
11 12 13 14 1
21 22 23 24 2
31 32 24 34 3
41 42 43 44 4
51 52 53 54 5
61 62 63 64 6
7
1 2 3 4
M
M
M
M
M
M
M
N N N N NM
T T T T T
T T T T T
T T T T T
T T T T T
T T T T T
T T T T T
T
T T T T T
L
L
L
L
L
L
M M M M O
L
Wavelet Transform
Matrix Row Wavelet Encoding
![Page 34: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/34.jpg)
11 12 13 14 1
21 22 23 24 2
31 32 24 34 3
41 42 43 44 4
51 52 53 54 5
61 62 63 64 6
7
1 2 3 4
M
M
M
M
M
M
M
N N N N NM
T T T T T
T T T T T
T T T T T
T T T T T
T T T T T
T T T T T
T
T T T T T
L
L
L
L
L
L
M M M M O
L
Wavelet Transform
Matrix Row Wavelet Encoding
![Page 35: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/35.jpg)
11 12 13 14 1
21 22 23 24 2
31 32 24 34 3
41 42 43 44 4
51 52 53 54 5
61 62 63 64 6
7
1 2 3 4
M
M
M
M
M
M
M
N N N N NM
T T T T T
T T T T T
T T T T T
T T T T T
T T T T T
T T T T T
T
T T T T T
L
L
L
L
L
L
M M M M O
L
Store Back in Matrix
0β β0 0
Matrix Row Wavelet Encoding
![Page 36: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/36.jpg)
11 12 13 14 1
21 22 23 24 2
31 32 24 34 3
41 42 43 44 4
51 52 53 54 5
61 62 63 64 6
7
1 2 3 4
M
M
M
M
M
M
M
N N N N NM
T T T T T
T T T T T
T T T T T
T T T T T
T T T T T
T T T T T
T
T T T T T
L
L
L
L
L
L
M M M M O
L
0β β0 0
Only 3% β 30% are non-zero
Matrix Row Wavelet Encoding
![Page 37: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/37.jpg)
Why Non-linear Approximation?
Linear
Use a fixed set of approximating functions
Precomputed radiance transfer uses 25 - 100 of the lowest frequency spherical harmonics
Non-linear
Use a dynamic set of approximating functions (depends on each frameβs lighting)
In our case: choose 10βs - 100βs from a basis of 24,576 wavelets
![Page 38: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/38.jpg)
Overall Rendering Algorithm
Pre-compute (per scene)
Compute matrix in pixel basis
Wavelet transform rows
Quantize, store
Interactive Relighting (each frame)
Wavelet transform lighting
Prioritize and retain N wavelet coefficients
Perform sparse-matrix vector multiplication
![Page 39: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/39.jpg)
Output Image Comparison
25 200 2,000 20,000
SHw
avel
et
![Page 40: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/40.jpg)
Limitation
Wavelet: not rotational invariant
Re-projection at each frame
Results in flicking
Only support dot-product operator
Limited to diffuse or fix-view glossy
![Page 41: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/41.jpg)
Results
![Page 42: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/42.jpg)
Zonal Harmonics [Sloan 05]
circularly symmetric functions
Subset of SH basis (m=0)
Low-frequency
Rotational invariant
Much more faster in rotationthan SH
![Page 43: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/43.jpg)
Spherical Gaussian (SG) [Tsai 06]
SGs (or Spherical Radial Basis Functions, SRBFs)
πΊ π―; π©, π = ππ π―β π©β1
bandwidthcenter
π©1
0
π©
π©
varying center
![Page 44: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/44.jpg)
Spherical Gaussian (SG) [Tsai 06]
SGs (or Spherical Radial Basis Functions, SRBFs)
πΊ π―; π©, π = ππ π―β π©β1
bandwidthcenter
π© π©1
0
π©
increasing bandwidth
![Page 45: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/45.jpg)
Mathematical Properties of SGs
Closed-form integral
The integral of an SG is closed-form
ΰΆ±Ξ©
πΊ π―; π©, π dπ― =2π
π1 β πβ2π
![Page 46: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/46.jpg)
Mathematical Properties of SGs
Closed under multiplication
The product of two SGs is also an SG
G π―; π©1, π1 β G π―; π©2, π2 = πG π―;π1π©1 + π1π©2π1π©1 + π1π©2
, π1π©1 + π1π©2
Product
β =
πΊππ π π―; π©1, π1 πΊππ π π―; π©2, π2
![Page 47: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/47.jpg)
Mathematical Properties of SGs
Closed under convolution approximately
The convolution of two SGs is still an SG
ΰΆ±Ξ©
πΊ π―; π©1, π1 β πΊ π―; π©2, π2 dπ― β π3πΊ π©1; π©2,π1π2
π1 + π2
Convolution
β =
πΊππ π π―; π©1, π1 πΊππ π π―; π©2, π2
![Page 48: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/48.jpg)
Summary of SGs Rotationally invariant
Lighting, BRDFs demand rotation
Capable of representing all-frequencysignals All-frequency lighting/BRDFs
Closed-form integral rendering is essentially integration [Kajiya 1986]
Closed under multiplication multiplication of lighting, visibility and BRDFs
Closed under convolution support for various applications
SGs are non-orthogonal!
![Page 49: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/49.jpg)
Lighting Approximation
non-linear process: iterative L-BFGS-B solver (slow)
πΏ π’ βπππΊ(π’; π©i, πi)
![Page 50: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/50.jpg)
BRDF Factorization [Wang 03, Liu 03]
Precompute the factorization
π π’, π¨ β
m
πm π’ β πm π¨
![Page 51: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/51.jpg)
Overall Rendering Algorithm
Derivation: Factorizing BRDF
πΏ π¨ = ΰΆ±Ξ©
πΏ π’ π π’ π π’, π¨ max(0, π β π’) dπ’
πΏ π¨ = ΰΆ±Ξ©
πΏ π’ π π’
m
πm π’ β πm π¨ max(0, π β π’) dπ’
πΏ π¨ =
m
πm π¨ ΰΆ±Ξ©
πΏ π’ π π’ πm π’ max(0, π β π’) dπ’
Both represented using SGs
π(π’)
![Page 52: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/52.jpg)
Overall Rendering Algorithm
Derivation: projection to SGs
Timing: O(N*N*M), non-orthogonal
πΏ π¨ =
m
πm π¨ ΰΆ±Ξ©
πΏ π’ π(π’) dπ’
πΏ π’ βπππΊπ(π’) π π’ β π‘ππΊπ(π’)
non-linear approx. pre. scattered approx.
πΏ π¨ =
m
πm π¨
π,π
πππ‘πΰΆ±Ξ©
πΊπ π’ πΊπ(π’) dπ’
analytic solution
![Page 53: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/53.jpg)
Results
![Page 54: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/54.jpg)
Piecewise Constant [Xu 08] Spherical Piecewise Constant Basis Function
(SPCBF) Split sphere into
regions
Each region is represented by a constant
Property All-frequency
Rotation-Invariant
Multi-product
Fast projection
![Page 55: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/55.jpg)
Piecewise Constant [Xu 08]
Light Projection
Bottom-up optimization
![Page 56: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/56.jpg)
Piecewise Constant [Xu 08]
Projection of visibility and BRDFs
BRDF
β using summed area table
Visibility
β Using visibility distance table
![Page 57: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/57.jpg)
Results
![Page 58: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/58.jpg)
Comparison of Basis Functions
SH Wavelet SG SPCBF
Orthogonal β β Γ β
All-frequency Γ β β β
Rotation invariant β Γ β β
Multiple product β β β ? β
Compact Representation β β β Γ
![Page 59: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/59.jpg)
Triple Product
Original PRT: light * light transport
Triple Product
β¦ Multiple Product
πΏ π¨ = ΰΆ±Ξ©
πΏ π’ π π’ π π’, π¨ max(0, π β π’) dπ’
light transportlightingNot Flexible
BRDF Γ cosinelighting visibility
![Page 60: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/60.jpg)
Wavelet Triple Product [Ng 04]
* *
![Page 61: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/61.jpg)
Wavelet Triple Product [Ng 04]
Basis Choice Number Non-Zero
General (e.g. PCA) O(N 3)Pixels O(N)Fourier Series O(N 2)SH O(N 5 / 2)Haar Wavelets O(N log N)
![Page 62: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/62.jpg)
Wavelet Triple Product [Ng 04]
![Page 63: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/63.jpg)
SG Triple Product Analytic Computation
The product of two SGs is also an SG
G π―; π©1, π1 β G π―; π©2, π2 = πG π―;π1π©1 + π1π©2π1π©1 + π1π©2
, π1π©1 + π1π©2
Could be easily extended to multiple product
Product
β =
πΊ π―; π©1, π1 πΊ π―; π©2, π2
![Page 64: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/64.jpg)
SH Triple Product
Precompute all triple products of SH basis
πΆπππ = ΰΆ±Ξ©
π΅π π’ π΅π π’ π΅π π’ dπ’
Compute the product of two functions directly in SH space:
Could be easily extended to multiple product
πΏ π’ βπππ΅π(π’)
π π’ β π‘ππ΅π(π’)
πΏ π’ β π π’ βππ‘ππ΅π(π’)ππ‘π =
π,π
πππ‘ππΆπππ
Original space SH space
![Page 65: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/65.jpg)
Shadow Field [Zhou05]
PRT
Handle only static scenes
Shadow Field
Handle moving light sources & objects
Rigid objects + dynamic scene configuration
Capture SRF/OOF around lights/objects
![Page 66: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/66.jpg)
6x16x16
samples
per sphere
16 spheres
8r
0.2r 16
16
Spherical Harmonics
OOFs: 384 KB
SRFs: 1 MB
Sampling & Compression (Low Frequency)
![Page 67: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/67.jpg)
Rendering: Products
BRDF
***
OOF-1
***
OOF-3
**
SRF-4
=
Reflected
radiance1
3
4
![Page 68: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/68.jpg)
Results
![Page 69: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/69.jpg)
SH Exponential [Ren 06] Shadow Field
Rigid objects
Computation of SH multiple product is still costly
SH Exponential Dynamic, deformation scene (objects)
Derive Exp/Log operators in SH space
Convert costly multiple product to summation in log space
![Page 70: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/70.jpg)
Blocker Geometry Approximation
Using sphere sets
Dynamically updateat each frame
![Page 71: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/71.jpg)
Rendering Computation
Multiple Product (a very big number)
Approach
Implement exp/log directly in SH space
Much faster
Light * Self_Vis * Occlusion1 * Occlusion2 * β¦. * OcclusionN * BRDF ***
ππ β ππ β β―β ππ
exp logππ + logππ +β―+ logππ
![Page 72: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/72.jpg)
Results
![Page 73: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/73.jpg)
More Rendering Applications
Translucent Rendering
Hair Rendering
BRDF Editing
Translucent Editing
Hair Editing
![Page 74: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/74.jpg)
Translucent Rendering [Wang05]
Extend PRT to handle translucent materials
Precompute the transport for multiple scattering and single scattering separately
πΏ π₯π, π¨ = ΰΆ±π΄
ΰΆ±Ξ©
πΏ π₯π , π’ π(π₯π , π’; π₯π , π¨)max(0, π β π’) dπ’
π₯π
π₯π
BSSRDF
factorized single scattering
=diffuse multiple scattering
+
![Page 75: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/75.jpg)
Results
Dynamic environment lighting
Fix: geometry + materials
Real-time
![Page 76: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/76.jpg)
Hair Rendering [Ren 10]
Extend PRT to handle hair rendering
Support environment lighting
β’ Single Scattering- Self-shadowing- Fiber scattering- Transparency
β’ Multiple Scatteringβ’ Natural Illumination
![Page 77: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/77.jpg)
β’ Approximate πΏ π¨ by N SGs
β’ Move T out from the integral
β small variation of T
Single Scattering Computation
πΏ π¨ = π·ΰΆ±Ξ©
πΏ π’ π π’ π π’, π¨ max(0, π β π’) dπ’
hair scattering func.self shadow
πΏ π¨ = π·
π=1
π
πΏπ ΰ·¨πΰΆ±Ξ©
πΊπ π’ π π’, π¨ max(0, π β π’) dπ’
Precompute as 4D table
![Page 78: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/78.jpg)
Results
Dynamic lighting, geometry
Fix hair scattering parameters
Interactive framerates
![Page 79: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/79.jpg)
BRDF Editing [Ben-Artzi 06]
πΏ π¨ = ΰΆ±Ξ©
πΏ π’ π π’ max(0, π β π’) π π’, π¨ dπ’
light transportlighting
PRT dynamic lighting + precompute light transport Fix: material + geometry
PRT based BRDF editing dynamic material + precompute material transport Fix: lighting + geometry + viewpoint
material transport material
![Page 80: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/80.jpg)
BRDF Editing [Ben-Artzi 06]
Rendering Algorithm
Precompute:
Runtime: (viewing direction π¨ is fixed)
1D curve
Approach: parameterize BRDF as 1D curveπ π’, π¨ = ππ π’, π¨ π πΎ π’, π¨
π πΎ βππ ππ(πΎ)
wavelet basis
quotient term
ππ = ΰΆ±Ξ©
πΏ π’ π π’ max 0, π β π’ ππ π’, π¨ ππ πΎ π’, π¨ dπ’
πΏ π¨ βππ ππ
![Page 81: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/81.jpg)
Results
![Page 82: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/82.jpg)
BRDF Editing with interreflection [Sun06]
dynamic lighting + viewpoint + material
Fix: geometry
all-frequency one bounce interreflection
Introduce PTT: precomputed transfer tensors
![Page 83: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/83.jpg)
Results
Interactive rates
![Page 84: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/84.jpg)
Translucent Editing [Xu 07]
Combine the ideas in βBRDF editingβ and in βtranslucent renderingβ
dynamic dipole parameters + precompute material transport
Compute single/multiple scattering separately
Basis Function: piecewise linear
![Page 85: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/85.jpg)
Results
Real-time, environment lighting
Fix: lighting + geometry
Changing scatteringparameters
![Page 86: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/86.jpg)
PRT vs analytic integration
PRT (Precomputation) Long precomputation time, large storage
Bake geometry/material/lighting into precomputation, needs to fix them
Analytic Computation No (or small) precomputation
Everything dynamic, could be run-time changed
Rendering Integral ΰΆ±Ξ©
πΏ π’ π π’ π π’ ππ’
![Page 87: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/87.jpg)
SG as a PRT basis [Tsai 2006]
rendering with dynamic BRDFs [Wang 2009]
frequency domain normal map filtering [Han 2007]
rendering and appearance editing of hairs [Xu 2011]
bi-scale BRDF editing [Iwasaki 2012]
real-time rendering of rough refractions [Rousiers 2012]
one-bounce interreflection [Xu 2014]
anisotropic spherical Gaussians [Xu 2014]Reference SH Wavelet SG
SG based analytic Integration
![Page 88: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/88.jpg)
Rendering with dynamic BRDFs [Wang09]
static scene, dynamic lighting, dynamic BRDF
BRDF: microfacet model
parametric β measured
isotropic β anisotropic
glossy β mirror-like
![Page 89: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/89.jpg)
Algorithm Overview
Spherical Gaussians SSDF
o
Prefiltered Environment
![Page 90: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/90.jpg)
Results
![Page 91: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/91.jpg)
Single scattering
πΏ ππ = π·ΰΆ±Ξ©
πΏ ππ π ππ π(ππ, ππ) cos ππ πππ
β’ πΏ ππ : environment lighting
β’ π ππ : self shadowing
β’ π(ππ, ππ): hair scattering function
Rendering and appearance editing of hairs [Xu 2011]
![Page 92: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/92.jpg)
Rendering and appearance editing of hairs [Xu 2011]Single scattering
πΏ ππ = π·ΰΆ±Ξ©
πΏ ππ π ππ π(ππ, ππ) cos ππ πππ
β’ Approximate πΏ ππ by a set of SGs πΊπ(ππ) [Tsai and Shih 2006]
πΏ ππ β π·ΰΆ±Ξ©
ππππΊπ ππ π ππ π(ππ, ππ) cos ππ ππππΏ ππ β π·
πππΰΆ±
Ξ©
πΊπ ππ π ππ π ππ, ππ cos ππ πππ
![Page 93: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/93.jpg)
Single scattering
β’ Approximate πΏ ππ by a set of SGs πΊπ(ππ) [Tsai and Shih 2006]
β’ Move T out from the integral [Ren 2010]
πΏ ππ β π·πππ ΰ·¨πΰΆ±
Ξ©
πΊπ ππ π ππ, ππ cos ππ ππππΏ ππ β π·πππ ΰΆ±
Ξ©
πΊπ ππ π ππ π ππ, ππ cos ππ πππ
Problem:
evaluate scattering Integral
Rendering and appearance editing of hairs [Xu 2011]
![Page 94: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/94.jpg)
Single Scattering Integral
Previous Approach [Ren 2010]
Precompute the integral into 4D table
Our key insight
Is there an approximated analytic solution?
YES
β Decompose SG πΊπ ππ into products of circular Gaussians
β Approximate scattering function π ππ, ππ by circular Gaussians
ΰΆ±Ξ©
πΊπ ππ π ππ, ππ cos ππ πππ
![Page 95: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/95.jpg)
Results No precomputation
all (geometry, lighting, hair scattering param.) dynamic
![Page 96: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/96.jpg)
One-bounce interreflection [Xu 14]
Aim at accurately and efficiently computing one-bounce interreflections with all-frequency BRDFs
SG-based representation of BRDFs and lighting
A novel analytic rendering formula
![Page 97: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/97.jpg)
One-bounce Interreflection Model
βπ’
π«
π¨
π±
πΏx π¨ = ΰΆ±Ξ©π
πx βπ«, π¨ max βπ« β π§x, 0 ΰΆ±Ξ©
πΏπ π’ ππ π’, π« max π β π§π, 0 dπ’dπ«
π§π
π§x
Triangle π(reflector)
receiver
Light πConfiguration:
β’ Single triangle reflector
β’ Distant lighting
β’ No occlusion between
the light, the reflector,
and the receiver
β’ Ignore textures on the
reflector
β’ Uniform BRDF (reflector)
![Page 98: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/98.jpg)
πΏx π¨ = ΰΆ±Ξ©π
πx βπ«, π¨ max βπ« β π§x, 0 ΰΆ±Ξ©
πΏπ π’ ππ π’, π« max π β π§π, 0 dπ’dπ«
One-bounce Interreflection Model
βπ’
π«
π¨
π±
π§π
π§x
Triangle π(reflector)
receiver
Light π
Represented by SGs
Approximated closed-form
solution
Piecewise linear approximation
Analytically
Evaluated !
![Page 99: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/99.jpg)
Results
![Page 100: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/100.jpg)
Limitation of SGs
Representing real functions
A mixture model of π scatteredSGs are required
Poor scalabilityβ More anisotropic functions require more
SGs
Making Trade-offβ Larger πmore accuracy, more cost
β Smaller π less accuracy, less cost
An example
![Page 101: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/101.jpg)
Anisotropic SG [Xu 14]
π³
π± π²
1
0
bi-tangenttangent lobe bandwidth for π±-axis bandwidth for π²-axis
smooth term exponential term
π²
π±
3D view Top view (2D)
An ASG
example with
![Page 102: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/102.jpg)
ASGs
Desired operators
Closed-form integral
Closed-form product
Closed-form convolution
![Page 103: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/103.jpg)
Integral of an ASG Integral
ΰΆ±Ξ©
πΊ π― dπ―
= ΰΆ±
π=0
2π
ΰΆ±
π=0
Ξ€π 2
πβπ sinπ cos π 2βπ sinπ sin π 2sin π cos π dπ dπ
Our approximation
ΰΆ±Ξ©
πΊ π― dπ― βπ
ππ
Accurate (error < 0.68%) when π, π > 5
![Page 104: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/104.jpg)
Product of two ASGs Our approximation: πΊ π―; π΄1 β πΊ2 π―; π΄2 β S π³π; π³π, π³π β
πΊ π―; π΄3 Validation
1st ASG πΊ π―; π΄1
2nd ASG πΊ π―; π΄2
Approximated
product
Ground truth
product
![Page 105: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/105.jpg)
Convolution of an ASG with an SG
Our approximation: πΆ π© βπ
π+π π+πβ πΊ π©; π±, π², π³ , [
ππ
π+π,ππ
π+π]
ASG
Convolution kernel
(SG)
Approximated
convolution
Ground truth
convolution
![Page 106: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/106.jpg)
Results
![Page 107: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/107.jpg)
Linearly Transformed Cosines [Heitz 18]
Approximate BRDFs using Linearly Transformed Cosines Functions
analytical integration on spherical polygons
![Page 108: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/108.jpg)
Misc
Compression
VQ, PCA, Clustered PCA [Sloan 03]
Meshless [Lehtinen 08]
Image space
Direct-to-indirect Transfer [HaΕ‘an 06]
![Page 109: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/109.jpg)
Misc
Neural network as a basis
Radiance Regression Functions [Ren 2013]
Deep Shading [Nalbach 2017]
![Page 110: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/110.jpg)
Reading Materials
SIGGRAPH 2005 Course , by Jan Kautz et al
Precomputed Radiance Transfer: Theory and Practicewww0.cs.ucl.ac.uk/staff/j.kautz/PRTCourse/
PRT survey, 2007, by Ravi Ramamoorthi
Precomputation-Based Rendering
EG STAR 2012 Report, by Ritschel et al
The State of the Art in Interactive Global Illumination
![Page 111: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/111.jpg)
Conclusion Precomputed Radiance Transfer
Project light/transport to basis function space
Precompute and save the transport
Efficient computing at run-time
Various rendering applications/featuresβ environment lighting, local lighting
β BRDFs/ translucent
β Material editing
β Static/dynamic scenes
β Interreflection
β β¦
![Page 112: Rendering under environment lightingΒΎζ.pdfRendering under environment lighting π’/ : incoming/view directions Brute-force computation Resolution: 6*64*64 Needs 6*64*64 times for](https://reader031.vdocuments.pub/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/112.jpg)
Thanks!
Questions?