All-Frequency PRT for Glossy Objects Xinguo Liu, Peter-Pike Sloan, Heung-Yeung Shum, John Snyder Microsoft.

Download Report

Transcript 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