Rendering under environment lighting¾昆.pdfRendering under environment lighting 𝐢/ :...
Transcript of Rendering under environment lighting¾昆.pdfRendering under environment lighting 𝐢/ :...
![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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/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.fdocuments.net/reader031/viewer/2022013010/5fa4c4812d0be5600906e71a/html5/thumbnails/112.jpg)
Thanks!
Questions?