talk - Peter

Download Report

Transcript talk - Peter

Local, Deformable Precomputed Radiance Transfer

Peter-Pike Sloan, Ben Luna Microsoft Corporation John Snyder Microsoft Research

“Local” Global Illumination

Renders GI effects on

local

details Rotates transfer model Neglects gross shadowing

“Local” Global Illumination

Original Ray Traced Rotated

Bat Demo

Precomputed Radiance Transfer (PRT) illuminate response

Transfer Vector

Related Work: Area Lighting [Ramamoorthi2001] [Sloan2003] [Muller2004] [Kautz2004] [Ng2003] [Sloan2002] [Liu2004;Wang2004] [Zhou2005] [James2003]

Other Related Work

• Directional Lighting – [Malzbender2001],[Ashikhmin2002] – [Heidrich2000] – [Max1988],[Dana1999] • Ambient Occlusion – [Miller1994],[Phar2004] – [Kontkanen2005],[Bunnel2005] • Environmental Lighting – [McCallister2002]

Spherical Harmonics (SH)

• Spherical Analog to the Fourier basis • Used extensively in graphics – [Kajiya84;Cabral87;Sillion91;Westin92;Stam95] • Polynomials in R 3 restricted to sphere

f lm

 

   

lm

projection   1

l n l

   0

m



l f lm y lm

reconstruction

Spherical Harmonics (SH)

• Spherical Analog to the Fourier basis • Used extensively in graphics – [Kajiya84;Cabral87;Sillion91;Westin92;Stam95] • Polynomials in R 3 restricted to sphere

f lm

 

   

lm

projection  reconstruction

Low Frequency Lighting

order 1 order 2 order 4 order 8 order 16 order 32 original

SH Rotational Invariance

rotate SH SH rotate

Spherical Harmonics (SH)

n th order, n 2 coefficients Evaluation O(n 2 )

Zonal Harmonics (ZH)

Polynomials in Z Circular Symmetry

SH Rotation Structure

    

C

       

L L L L L L L L L Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q

                       

Q

3

Z Y Z X YX YZ

2 1

XZ

 1            

X

2 

Y

2 O(n 3 ) Too Slow!

ZH Rotation Structure

    

C

       

L L L L L L L L L Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q

                        3

Z

2 1

Z

 1            

Q

O(n 2 )

What’s that column?

Rotate delta function  so that

z

z

’ : • Evaluate delta function at

z

= (0,0,1)

d l

  

z l

0 

y l

0  2

l

 1 4  • Rotating scales column

C

by

d l

– Equals

y

(

z

’ ) due to rotation invariance

C d lm l

y lm

z

z

z z

What’s that column?

Rotate delta function  so that

z

z

’ : • Evaluate delta function at

z

= (0,0,1)

d l

  

z l

0 

y l

0  2

l

 1 4  • Rotating scales column

C

by

d l

– Equals

y

(

z

’ ) due to rotation invariance

C d lm l

y lm

C lm

y lm d l

z

z

z z

Efficient ZH Rotation

z g

(

s

)

Efficient ZH Rotation

z g

(

s

)           3 4 0 0 3 2  3 4 3        

g l

 

y l

0

Efficient ZH Rotation

z g

(

s

)           3 4 0 0 3 2  3 4 3        

g l

 

y l

0

g

’ (

s

)

z

Efficient ZH Rotation

z g

(

s

)           3 4 0 0 3 2  3 4 3        

g l

 

y l

0

g

’ (

s

)

g

 

G

*  diag

g

0 * , *   1 * , 1 * , 1 * ,

z

Efficient ZH Rotation

z g

(

s

)           3 4 0 0 3 2  3 4 3        

g l

 

y l

0

g

’ (

s

)

g

  *  

G

*  diag

g

0 * ,

g l

* 

g d l l

g l

1 * , 1 * , 1 * , 2

l

4   1

z

Transfer Approx. Using ZH

• Approximate transfer vector

t

by sum of

N

“lobes”

t

i N

  1

i

*  

i

e.g.,

t

 + + +

Transfer Approx. Using ZH

• Approximate transfer vector

t

by sum of

N

“lobes”

t

i N

  1

i

*  

i t R

i N

  1

i

*  

i

Transfer Approx. Using ZH

• Approximate transfer vector

t

by sum of

N

“lobes”

t

i N

  1

i

*  

i t R

i N

  1

i

*  

i

• Minimize squared error over the sphere   

S

2   2

ds t

2

Single Lobe Solution

• For known direction

s*

, closed form solution

g l

*   

m l

  1

y lm t lm

 

4  (2

l

 1)

• “Optimal linear” direction is often good – Reproduces linear, formed by gradient of linear terms – Well behaved under interpolation – Cosine weighted direction of maximal visibility in AO

Multiple Lobes

Random vs. PRT Signals

Scene Max Scene Avg

Energy Distribution of Transfer Signals Energy Per Band

50% 45% 40% 35% 30% 25% 20% 15% 10% 5% 0% 0 1 2 3

Band

4 5 6 7 Bump Waffle WaffleSS WeaveDirect WeaveIR Swirls Scene Mayan

Energy Distribution and Subsurface Scatter Effects of Subsurface

60% 50% 40% 30% 20% 10% 0% 0 1 2 3

Band

4 5 6 7 Diffuse SSA SSB

Rendering

• Rotate lobe axis, reconstruct transfer and dot with lighting  

i N

   1

l n

 0

m l



l y lm g il

*  

l

• Care must be taken when interpolating – Non-linear parameters – Lobe correspondence with multiple-lobes

Light Specialized Rendering

 

i N

   1

l n

 0

l m



l y lm g il

*  

l

Light Specialized Rendering

 

i N

   1

l n

 0

l m



l y lm i N

 1

l n

 0

m l

  

l y lm g il

*  

l

*

g l il lm

Light Specialized Rendering

 

i N

   1

l n

 0

l m



l y lm i N

 1

l n

 0

m l

  

l y lm g il

*  

l

*

g l il lm i N

  1

l n

 0

g il

*  

m l

 

l y lm

 

lm

 

Light Specialized Rendering

Light Specialized Rendering

Cubic Quadratic

i N

  1

l n

 0

g il

*  

l

m



l y lm

 

lm

  O(N n 2 ) → O(N n) Quartic Quintic

Generating LDPRT Models

• • PRT simulation over mesh – – texture: specify patch (a) per-vertex: specify mesh (b) Parameterized models – – ad-hoc using intuitive parameters (c) fit to simulation data (d) (a) LDPRT texture (c) thin-membrane model (d) wrinkle model (b) LDPRT mesh

LDPRT Texture Pipeline

• Start with “tileable” heightmap • Simulate 3x3 grid • Extract and fit LDPRT • Store in texture maps

Thin Membrane Model

• Single degree of freedom (DOF) – “ optical thickness”: light bleed in negative normal direction

Wrinkle Model

• Two DOF – Phase, position along canonical wrinkle

Wrinkle Model

• Two DOF – Phase, position along canonical wrinkle – Amplitude, max magnitude of wrinkle

Wrinkle Model Fit

• Compute several simulations – 64 discrete amplitudes – 255 unique points in phase • Fit 32x32 textures – One optimization for all DOF simultaneously – Optimized for bi-linear reconstruction – 3 lobes

Glossy LDPRT

• • Use separable BRDF Encode each “row” of transfer matrix using multiple lobes (3 lobes, 4 th order lighting) • See paper for details

Demo

Conclusions/Future Work

• • • “local” global illumination effects – soft shadows, inter-reflections, translucency easy-to-rotate rep. for spherical functions – sums of rotated zonal harmonics – allows dynamic geometry, real-time performance – may be useful in other applications [Zhou2005] future work: non-local effects – articulated characters

Acknowledgements

• Demos/Art: John Steed, Shanon Drone, Jason Sandlin • Video: David Thiel • Graphics Cards: Matt Radeki • Light Probes: Paul Debevec