Fast Approximation to Spherical Harmonics Rotation Sumanta Pattanaik University of Central Florida Kadi Bouatouch IRISA / INRIA Rennes Jaroslav Křivánek Czech Technical University Jaakko Konttinen University of Central Florida Jiří Žára Czech Technical University ComputerGraphicsGroup
Jaroslav Křivánek – Spherical Harmonics Rotation2/40 Presentation Topic What? Rotate a spherical function represented by spherical harmonics How? Approximation by a truncated Taylor expansion Why? Applications in real-time rendering and global illumination
Jaroslav Křivánek – Spherical Harmonics Rotation3/40 Unfortunate Finding Our technique is only MARGINALLY FASTER than a previous technique.
Jaroslav Křivánek – Spherical Harmonics Rotation4/40 Questions You Might Want to Ask 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 Rotation5/40 Talk Overview Spherical Harmonics Spherical Harmonics Rotation Previous Techniques Our Rotation Approximation Applications & Results Conclusions
Jaroslav Křivánek – Spherical Harmonics Rotation6/40 Talk Overview Spherical Harmonics Spherical Harmonics Rotation Previous Techniques Our Rotation Approximation Applications & Results Conclusions
Jaroslav Křivánek – Spherical Harmonics Rotation7/40 Spherical Harmonics Basis functions on the sphere
Jaroslav Křivánek – Spherical Harmonics Rotation8/40 Spherical Harmonics
Jaroslav Křivánek – Spherical Harmonics Rotation9/40 Spherical Harmonics Function represented by a vector of coefficients: n … order
Jaroslav Křivánek – Spherical Harmonics Rotation10/40 Talk Overview Spherical Harmonics Spherical Harmonics Rotation Previous Techniques Our Rotation Approximation Applications & Results Conclusions
Jaroslav Křivánek – Spherical Harmonics Rotation11/40 SH Rotation – Problem Definition Given coefficients , representing a spherical function find coefficients for directly from coefficients .
Jaroslav Křivánek – Spherical Harmonics Rotation12/40 SH Rotation Matrix Rotation = linear transformation by R: R … spherical harmonics rotation matrix Given the desired 3D rotation, find the matrix R
Jaroslav Křivánek – Spherical Harmonics Rotation13/40 Talk Overview Spherical Harmonics Spherical Harmonics Rotation Previous Techniques Our Rotation Approximation Applications & Results Conclusions
Jaroslav Křivánek – Spherical Harmonics Rotation14/40 Previous Work – Molecular Chemistry [Ivanic and Ruedenberg 1996] [Choi et al. 1999] Slow Bottleneck in rendering applications
Jaroslav Křivánek – Spherical Harmonics Rotation15/40 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 if properly optimized
Jaroslav Křivánek – Spherical Harmonics Rotation16/40 zxzxz-decomposition [Kautz et al. 02] Decompose the 3D rotation into ZYZ Euler angles: R = R Z ( ) R Y ( ) R Z ( )
Jaroslav Křivánek – Spherical Harmonics Rotation17/40 zxzxz-decomposition [Kautz et al. 02] R = R Z ( ) R Y ( ) R Z ( ) Rotation around Z is simple and fast Rotation around Y still a problem
Jaroslav Křivánek – Spherical Harmonics Rotation18/40 zxzxz-decomposition [Kautz et al. 02] Rotation around Y Decomposition of R Y ( ) into R X (+90˚) R Z ( ) R X (-90˚) R = R Z ( ) R X (+90˚) R Z ( ) R X (-90˚) R Z ( ) Rotation around X is fixed-angle pre-computed matrix
Jaroslav Křivánek – Spherical Harmonics Rotation19/40 zxzxz-decomposition [Kautz et al. 02] Optimized implementation – unrolled code 4-6 x faster
Jaroslav Křivánek – Spherical Harmonics Rotation20/40 Talk Overview Spherical Harmonics Spherical Harmonics Rotation Previous Techniques Our Rotation Approximation Applications & Results Conclusions
Jaroslav Křivánek – Spherical Harmonics Rotation21/40 Our Rotation 1. zyz decomposition: R = R Z ( ) R Y ( ) R Z ( ) 2. R Y ( ) approximated by a truncated Taylor expansion
Jaroslav Křivánek – Spherical Harmonics Rotation22/40 Taylor Expansion of R Y ( )
Jaroslav Křivánek – Spherical Harmonics Rotation23/40 Taylor Expansion of R Y ( ) “1.5-th order Taylor exp.” Fixed, sparse matrices
Jaroslav Křivánek – Spherical Harmonics Rotation24/40 SH Rotation – Results L2 error for a unit length input vector
Jaroslav Křivánek – Spherical Harmonics Rotation25/40 Talk Overview Spherical Harmonics Spherical Harmonics Rotation Previous Techniques Our Rotation Approximation Applications & Results Conclusions
Jaroslav Křivánek – Spherical Harmonics Rotation26/40 Application 1 – Radiance Caching Global illumination: smooth indirect term Sparse computation Interpolation
Jaroslav Křivánek – Spherical Harmonics Rotation27/40 Incoming Radiance Interpolation Interpolate coefficient vectors 1 and 2 p1p1 p2p2 p
Jaroslav Křivánek – Spherical Harmonics Rotation28/40 Interpolation on Curved Surfaces
Jaroslav Křivánek – Spherical Harmonics Rotation29/40 Interpolation on Curved Surfaces Align coordinate frames in interpolation pp1p1 R
Jaroslav Křivánek – Spherical Harmonics Rotation30/40 Radiance Caching Results
Jaroslav Křivánek – Spherical Harmonics Rotation31/40 Radiance Caching Results Direct illumination Direct + indirect
Jaroslav Křivánek – Spherical Harmonics Rotation32/40 More radiance caching: Temporal radiance caching, 3:45, room 210
Jaroslav Křivánek – Spherical Harmonics Rotation33/40 Application 2 – Normal Mapping Original method by [Kautz et al. 2002] Environment map Arbitrary BRDF Extended with normal mapping Needs per-pixel rotation to align with the modulated normal Rotation implemented in fragment shader
Jaroslav Křivánek – Spherical Harmonics Rotation34/40 Normal Mapping Results Rotation IgnoredOur Rotation
Jaroslav Křivánek – Spherical Harmonics Rotation35/40 Normal Mapping Results Rotation IgnoredOur Rotation
Jaroslav Křivánek – Spherical Harmonics Rotation36/40 Comparison – Time per rotation (CPU) DirectX October 2004: 1.8 x slower than Ivanic Order 6Order 10 T [ s]
Jaroslav Křivánek – Spherical Harmonics Rotation37/40 Talk Overview Spherical Harmonics Spherical Harmonics Rotation Previous Techniques Our Rotation Approximation Applications & Results Conclusions
Jaroslav Křivánek – Spherical Harmonics Rotation38/40 Conclusion Proposed approximate SH rotation Slightly faster than previous technique SH Rotation Speed 1. Our approximation 2. DX 9.0c (up to order 6) 3. zxzxz-decomposition with unrolled code Lesson learned Micro-optimization important for fair comparisons
Jaroslav Křivánek – Spherical Harmonics Rotation39/40 Future Work Fast approximate rotation for wavelets
Jaroslav Křivánek – Spherical Harmonics Rotation40/40 Questions ? ? ? ? ? ? ? ? Code on-line (SH rotation, radiance caching)
Jaroslav Křivánek – Spherical Harmonics Rotation41/40 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 [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, Joseph Ivanic and Klaus Ruedenberg. Additions and corrections : Rotation matrices for real spherical harmonics. J. Phys. Chem. A, 102(45):9099– 9100, [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, [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 13 th Eurographics workshop on Rendering, pages 291–296. Eurographics Association, 2002.