All-Frequency PRT for Glossy Objects Xinguo Liu, Peter-Pike Sloan, Heung-Yeung Shum, John Snyder Microsoft.
Download ReportTranscript All-Frequency PRT for Glossy Objects Xinguo Liu, Peter-Pike Sloan, Heung-Yeung Shum, John Snyder Microsoft.
All-Frequency PRT for Glossy Objects
Xinguo Liu, Peter-Pike Sloan, Heung-Yeung Shum, John Snyder Microsoft
PRT Effects
Contribution
low freq + glossy Sloan et al 02, 03 all freq + diffuse Ng el al 03 all freq + glossy Our method
Radiance Transfer: Rendering Equation
g p
(
v
)
H
H b
(
v
,
s
) cos
t p
(
s
)
ds f
(
v
,
s
)
t p
(
s
)
ds
BRDF Product Function
v
H f
(
v
,
s
)
t p
[
l
(
s
)]
ds
Light Transport Operator
N
s p
Radiance Transfer: Formulation
g p
(
v
)
H T f
(
v
,
s
)
t t p p
[ [ (
l
( (
s s
) )
L L
]
ds
G T
(
v
)
H F
(
s
)
t p
[ (
s
)]
ds L
(
M p
)
ij M p
H F i
(
s
)
t p
[
l j
(
s
)]
ds l
(
s
) PRT Matrix
t p
(
s
)
Radiance Transfer: Shadowing Only (
M p
)
ij
H F i
(
s
)
q p t
(
s p
[ )
l j
(
s
)]
ds
visibility function blocked 0
l
(
s
) visible 1
t p
(
s
)
BRDF Factorization
from Kautz et al, EGWR 99
BRDF Factorization: Our Method
Build the cosine factor into the BRDF
f
(
v
,
s
)
b
(
v
,
s
) cos Sample the BRDF product function parabolic map Factor it by SVD
f
(
v
,
s
)
G
(
v
)
F
(
s
)
v
s f
(
v i
,
s j
)
BRDF Factorization: Example 1
Analytic Cook-Torrance Roughness=0.4
m=2 m=5 m=10 m=20
BRDF Factorization: Example 2
Analytic Cook Torrance BRDF Approximated with m=10 Roughness=0.3 0.25 0.20
BRDF Factorization: Error Analysis
Comparison with SH [Sloan 02,03] Comparison with no cosine weight SVD SVD(no cosine) 10 10 0.677
0.0764
0.554
0.758
0.0389
0.0474
0.298
0.357
Radiance Transfer Matrix
(
M p
)
ij
H F i
(
s
)
l j
(
s
)
q p
(
s
)
ds
Precomputation Compute visibility function
q
Super sampling by 4x4 for anti-aliasing Compute matrix by integrating over
s
10
F i
6 x 32 x 32
l
61440 total dimension
3 minutes 2 minutes
PRT Compression --- Wavelet-Based [Ng 03] For diffuse material/fixed view only single row (PRT vector) we have multiple rows: 10 (PRT matrix) Wavelet transform each vector zero small wavelet coefficients only 3%~30% are kept Put all the response vectors in a giant matrix sparse matrix encoding for compression
PRT Compression --- CPCA [Sloan 03] Classify point into clusters using approx. error Update cluster rep. by PCA Run many iterations Accelerates rendering too compressed rep. can be rendered directly
PRT Compression --- Light Segmentation
m
10
F i
(
s
)
n L
6 32 32
light basis
M
p
16 16 10 256 sub
PRT Compression --- Our Method run CPCA on PRT matrices [Sloan03] 16 eigenvectors (including mean) per cluster 16 combination weights per vertex wavelet transform all the eigenvectors [Ng03] Arrange all eigenvectors into a matrix Zero small wavelet coefficients Encode it as a sparse matrix
Compression Results
10 minutes for simple diffuse ground plane 4 hours for the most complex glossy Buddha model .
Compression Results
light source corresponding to segment
Compression Results
2 PC 4 PC 8 PC 16PC
Rendering with PRT
project source lighting to find coefficients L for each cluster
compute T i
M i L for each vertex
compute T p
i
16 1
w i p T i add up results of T p over 24 partitions
compute g p
(
v
)
G T
(
v
)
T p
Lighting Truncation: Energy Loss
200 coefficient all coefficients
Lighting Truncation: Temporal Aliasing 200 coefficient all coefficients
Rendering Results
1~5 fps
Diffuse Glossy
Rendering Results
low frequency all frequency no shadow
Conclusions
Contributions cosine-weighted BRDF factorization all frequency glossy PRT compression scheme Future work include inter-reflections move some computations to GPU optimize PRT sampling over the surface
Thanks to anonymous reviewers for valuable comments Zhunping Zhang, Wenle Wang for discussion Jiaping Wang for producing video
More Results
PRT Compression --- Wavelet based [Ng 03] Sparse matrix encoding partition into small block of 256 rows.
8 bits for values, 8 bits for indices vs. we use 16 bits for values Vertex index 3 0 0 0 light index 0 0 1 0 8 0 7 0 0 6 9 0
encoding sparse matrix
3 1 1 2 8 4 7 3 6 2 9 3
Vertex index
Rendering with PRT
Advantage of CPCA
T p
i
16 1
w i p i L
vs
T p
i
16 1
w i p T i
flops:
n p *16*10* n L + n p *10* n L vs n E
– representatives. 370 : 1
n p *16*10+ n E *16*10* n L /24
no CPCA. 20 : 1 Light truncation temporal artifacts