Post-publication Review of
Reviewed On September 08, 2013
Reviewed by
Endorsed by
Content of review 1, reviewed on September 08, 2013

For very narrow spherical Gaussians, numerical issues can arise in finite precision floating calculations. We found the following special cases useful in our implementation. To evaluate the $M$ function when the variance is low, $v < 0.1$, we use $$ M\left(v,\theta _{\text{cone}},\theta _o\right) \approx \exp \left(\log \left(I_0\left(a\right)\right)+b-\frac{1}{v}+0.6931+\log \left(\frac{1}{2 v}\right)\right) $$ where $a = \cos \theta _{\text{cone}} \cos \theta_o / v$ and $b = \sin \theta _{\text{cone}} \sin \theta_o / v$. The log of the Bessel function can also be problematic for large arguments for we use the following special case for $\log( I_0(x))$ when $x > 12$: $$ \log( I_0(x)) \approx x + 0.5 \left( -\log ( 2 \pi ) + \log \frac{1}{x} + \frac{1}{8x} \right). $$


    © 2013 the Reviewer.

Comments   (Guidelines)

Eugene d'Eon

9:13 a.m., 8 Sep 13 (UTC) | Link

The idea to use the slide rule trick was due to Geoffrey Irving. The further expansions were derived by Eugene d'Eon.

Please log in to leave a comment.


    Eugene, d., Guillaume, F., Martin, H., Joe, L., Jean-Marie, A. 2011. An Energy-Conserving Hair Reflectance Model. Computer Graphics Forum.