Adaptive Mesh Subdivision for Precomputed Radiance Transfer

Download Report

Transcript Adaptive Mesh Subdivision for Precomputed Radiance Transfer

Fast Approximation to Spherical
Harmonics Rotation
Jaroslav Křivánek
Jaakko Konttinen
Czech Technical University
University of Central Florida
Sumanta Pattanaik
Kadi Bouatouch
Jiří Žára
University of Central Florida
IRISA / INRIA Rennes
Czech Technical University
Computer
Graphics
Group
Presentation Topic

What?

Rotate a spherical function represented by
spherical harmonics
How?

Approximation by a truncated Taylor
expansion
Why?



2/40
Applications in real-time rendering and global
illumination
Jaroslav Křivánek – Spherical Harmonics Rotation
Unfortunate Finding

Our technique is only MARGINALLY FASTER
than a previous technique.
3/40
Jaroslav Křivánek – Spherical Harmonics Rotation
Questions You Might Want to Ask




4/40
Q1: So why taking up a SIGGRAPH sketch slot?
 Found out only very recently.
Q2: And before?
 Implementation of previous work was NOT
OPTIMIZED.
Q3: Does optimization change that much?
 In this case, it does (4-6 times speedup).
Q4: How did you find out?
 I’ll explain later.
Jaroslav Křivánek – Spherical Harmonics Rotation
Talk Overview

Spherical Harmonics

Spherical Harmonics Rotation

Previous Techniques

Our Rotation Approximation

Applications & Results

Conclusions
5/40
Jaroslav Křivánek – Spherical Harmonics Rotation
Talk Overview

Spherical Harmonics

Spherical Harmonics Rotation

Previous Techniques

Our Rotation Approximation

Applications & Results

Conclusions
6/40
Jaroslav Křivánek – Spherical Harmonics Rotation
Spherical Harmonics

7/40
Basis functions on the sphere
Jaroslav Křivánek – Spherical Harmonics Rotation
Spherical Harmonics
L( ) 
1
1
c 
2
2
c 
+
+
c 
+
c 
+
0
0
1
2
c 
0
1
+
c 
0
2
c 
1
2
8/40
c 
1
1
+
+
+
Jaroslav Křivánek – Spherical Harmonics Rotation
c 
2
2
Spherical Harmonics
Function represented by a vector of coefficients:

  [c ]  c
m
l
0
0
1
1
c
 c

n 1 T
n 1
n … order
9/40
Jaroslav Křivánek – Spherical Harmonics Rotation
Talk Overview

Spherical Harmonics

Spherical Harmonics Rotation

Previous Techniques

Our Rotation Approximation

Applications & Results

Conclusions
10/40
Jaroslav Křivánek – Spherical Harmonics Rotation
SH Rotation – Problem Definition

Given coefficients , representing a spherical
function

11/40
find coefficients  for
coefficients .
directly from
Jaroslav Křivánek – Spherical Harmonics Rotation
SH Rotation Matrix

Rotation = linear transformation by R:

R … spherical harmonics rotation matrix
  R

Given the desired 3D rotation, find the matrix R
12/40
Jaroslav Křivánek – Spherical Harmonics Rotation
Talk Overview

Spherical Harmonics

Spherical Harmonics Rotation

Previous Techniques

Our Rotation Approximation

Applications & Results

Conclusions
13/40
Jaroslav Křivánek – Spherical Harmonics Rotation
Previous Work – Molecular Chemistry

[Ivanic and Ruedenberg 1996]

[Choi et al. 1999]


14/40
Slow
Bottleneck in rendering applications
Jaroslav Křivánek – Spherical Harmonics Rotation
Previous Work – Computer Graphics

[Kautz et al. 2002]




zxzxz-decomposition
THE fastest previous method
THE method we compare against
THE method nearly as fast as ours

15/40
if properly optimized
Jaroslav Křivánek – Spherical Harmonics Rotation
zxzxz-decomposition [Kautz et al. 02]

Decompose the 3D rotation into ZYZ Euler
angles: R = RZ(a) RY(b) RZ(g)
16/40
Jaroslav Křivánek – Spherical Harmonics Rotation
zxzxz-decomposition [Kautz et al. 02]

R = RZ(a) RY(b) RZ(g)

Rotation around Z is simple and fast

Rotation around Y still a problem
17/40
Jaroslav Křivánek – Spherical Harmonics Rotation
zxzxz-decomposition [Kautz et al. 02]

Rotation around Y

Decomposition of RY(b) into
RX(+90˚)
 RZ(b)
 RX(-90˚)



R = RZ(a) RX(+90˚) RZ(b) RX(-90˚) RZ(g)
Rotation around X is fixed-angle

18/40
pre-computed matrix
Jaroslav Křivánek – Spherical Harmonics Rotation
zxzxz-decomposition [Kautz et al. 02]

Optimized implementation – unrolled code

19/40
4-6 x faster
Jaroslav Křivánek – Spherical Harmonics Rotation
Talk Overview

Spherical Harmonics

Spherical Harmonics Rotation

Previous Techniques

Our Rotation Approximation

Applications & Results

Conclusions
20/40
Jaroslav Křivánek – Spherical Harmonics Rotation
Our Rotation
1.
zyz decomposition: R = RZ(a) RY(b) RZ(g)
2.
RY(b) approximated by a truncated Taylor
expansion
21/40
Jaroslav Křivánek – Spherical Harmonics Rotation
Taylor Expansion of RY(b)
2
d
Ry
b
R y (b )  I  b
(0) 
(0)
2
db
2 db
dR y




22/40








2








Jaroslav Křivánek – Spherical Harmonics Rotation




Taylor Expansion of RY(b)
2
d
Ry
b
R y (b )  I  b
(0) 
(0)
2
db
2 db
dR y













“1.5-th order Taylor exp.”

Fixed, sparse matrices
23/40
2








Jaroslav Křivánek – Spherical Harmonics Rotation




SH Rotation – Results

24/40
L2 error for a
unit length
input vector
Jaroslav Křivánek – Spherical Harmonics Rotation
Talk Overview

Spherical Harmonics

Spherical Harmonics Rotation

Previous Techniques

Our Rotation Approximation

Applications & Results

Conclusions
25/40
Jaroslav Křivánek – Spherical Harmonics Rotation
Application 1 – Radiance Caching



Global illumination: smooth indirect term
Sparse computation
Interpolation
26/40
Jaroslav Křivánek – Spherical Harmonics Rotation
Incoming Radiance Interpolation
p
p2
p1

27/40
Interpolate coefficient vectors 1 and 2
Jaroslav Křivánek – Spherical Harmonics Rotation
Interpolation on Curved Surfaces
28/40
Jaroslav Křivánek – Spherical Harmonics Rotation
Interpolation on Curved Surfaces

Align coordinate frames in interpolation
p1
R
p
29/40
Jaroslav Křivánek – Spherical Harmonics Rotation
Radiance Caching Results
30/40
Jaroslav Křivánek – Spherical Harmonics Rotation
Radiance Caching Results
Direct
illumination
31/40
Direct +
indirect
Jaroslav Křivánek – Spherical Harmonics Rotation
More radiance caching: Temporal radiance caching, 3:45, room 210
32/40
Jaroslav Křivánek – Spherical Harmonics Rotation
Application 2 – Normal Mapping

Original method by [Kautz et al. 2002]



Environment map
Arbitrary BRDF
Extended with normal mapping


33/40
Needs per-pixel rotation to align with
the modulated normal
Rotation implemented in fragment shader
Jaroslav Křivánek – Spherical Harmonics Rotation
Normal Mapping Results
Rotation Ignored
34/40
Our Rotation
Jaroslav Křivánek – Spherical Harmonics Rotation
Normal Mapping Results
Rotation Ignored
35/40
Our Rotation
Jaroslav Křivánek – Spherical Harmonics Rotation
Comparison – Time per rotation (CPU)
7,00
35,00
6,00
30,00
5,00
25,00
c
ni
zx
z
Iv
a
(u
no
pt
tX
th
1.
5O
ur
c
ni
Iv
a
(u
zx
zx
z
z
zx
zx
no
pt
pt
.)
(o
tX
ire
c
D
1.
5-
pt
.)
0,00
zx
0,00
(o
5,00
z
1,00
zx
10,00
.)
2,00
.)
15,00
zx
3,00
20,00
ire
c
4,00
D
T [ms]
40,00
O
ur

Order 10
8,00
th
T [ms]
Order 6
DirectX October 2004: 1.8 x slower than Ivanic
36/40
Jaroslav Křivánek – Spherical Harmonics Rotation
Talk Overview

Spherical Harmonics

Spherical Harmonics Rotation

Previous Techniques

Our Rotation Approximation

Applications & Results

Conclusions
37/40
Jaroslav Křivánek – Spherical Harmonics Rotation
Conclusion

Proposed approximate SH rotation
Slightly faster than previous technique
SH Rotation Speed


Our approximation
2. DX 9.0c (up to order 6)
3. zxzxz-decomposition with unrolled code
Lesson learned
1.


38/40
Micro-optimization important for fair
comparisons
Jaroslav Křivánek – Spherical Harmonics Rotation
Future Work

Fast approximate rotation for wavelets
39/40
Jaroslav Křivánek – Spherical Harmonics Rotation
Questions
Code on-line (SH rotation, radiance caching)
http://moon.felk.cvut.cz/~xkrivanj/projects/rcaching
?
?
?
?
?
40/40
?
?
Jaroslav Křivánek – Spherical Harmonics Rotation
?
Appendix – Bibliography




[Křivánek et al. 2005] Jaroslav Křivánek, Pascal Gautron, Sumanta
Pattanaik, and Kadi Bouatouch. Radiance caching for efficient global
illumination computation. IEEE Transactions on Visualization and Computer
Graphics, 11(5), September/October 2005.
[Ivanic and Ruedenberg 1996] Joseph Ivanic and Klaus Ruedenberg.
Rotation matrices for real spherical harmonics. direct determination by
recursion. J. Phys. Chem., 100(15):6342–6347, 1996.
Joseph Ivanic and Klaus Ruedenberg. Additions and corrections : Rotation
matrices for real spherical harmonics. J. Phys. Chem. A, 102(45):9099–
9100, 1998.
[Choi et al. 1999]
Cheol Ho Choi, Joseph Ivanic, Mark S. Gordon, and
Klaus Ruedenberg. Rapid and stable determination of rotation matrices
between spherical harmonics by direct recursion. J. Chem. Phys.,
111(19):8825–8831, 1999.
[Kautz et al. 2002] Jan Kautz, Peter-Pike Sloan, and John Snyder. Fast,
arbitrary BRDF shading for low-frequency lighting using spherical
harmonics. In Proceedings of the 13th Eurographics workshop on
Rendering, pages 291–296. Eurographics Association, 2002.
41/40
Jaroslav Křivánek – Spherical Harmonics Rotation