Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.graphics.algorithms > #901

Re: Rotating Spherical Harmonics

From Nicolas Bonneel <nicolas.bonneel@wwwwwwwwanadoo.fr>
Newsgroups comp.graphics.algorithms
Subject Re: Rotating Spherical Harmonics
Date 2012-07-01 00:16 -0400
Organization Aioe.org NNTP Server
Message-ID <jsoivg$ei0$1@speranza.aioe.org> (permalink)
References <udgHr.500084$4v3.160425@fx08.am4>

Show all headers | View raw


Le 29/06/2012 07:22, Thomas a écrit :
> Hello
>
> I'm playing with a Spherical Harmonic (SH) based implementation of Image
> Based Lighting and need to rotate a function expressed as a series of SH
> coefficients Could someone familiar with the subject be so kind as to point
> me to the current state of the art. Since the context is computer graphics,
> I'm more interested in speed than accuracy.
>
> Haviing said that speed is the priority, it seems to me that accuracy would
> be best preserved by decomposing an arbitrary rotation into a cannonical
> rotation plus a smaller arbitrary rotation. Rotating by 180 degrees about
> the x/y axes would seem straightforward and fast. Are there any other simple
> cannonical rotations.

Hi,
there is a paper which approximates the SH rotation matrices:
http://www.irisa.fr/prive/kadi/SiteEquipeAsociee/Site_RTR2A/Papiers/2006-sccg-krivanek.pdf

But I don't find the exact method that slow (for a given rotation, you 
just have a b*b matrix to build for each band of order b). The maths 
(for the exact formula) are here:
http://www.cs.columbia.edu/~cs4162/slides/spherical-harmonic-lighting.pdf
(actually, if I remember well there might be a typo in the formula which 
can be easily corrected by looking at the references). I know that 
DirectX has some functions to rotate SH but I'm not a DirectX person, so 
I can't tell which.

An option that I used at some point is to precompute a bunch of rotated 
SH in a 3D texture and upload everything once and for all to the GPU 
(for BRDF rendering).
Finally, there is a fast SH transform code on the web based on FFTW 
which I find extremely fast, and unless you only need 10 SH bands (which 
is already high for rendering not too specular surfaces / low frequency 
environments), you can run it on your rotated signals directly ;)

Cheers

Back to comp.graphics.algorithms | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Rotating Spherical Harmonics "Thomas" <someone@somewhere.com> - 2012-06-29 12:22 +0100
  Re: Rotating Spherical Harmonics Nicolas Bonneel <nicolas.bonneel@wwwwwwwwanadoo.fr> - 2012-07-01 00:16 -0400
    Re: Rotating Spherical Harmonics "Thomas" <someone@somewhere.com> - 2012-07-02 12:56 +0100
    Re: Rotating Spherical Harmonics "Thomas" <someone@somewhere.com> - 2012-07-05 14:04 +0100

csiph-web