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). $$

Source

    © 2013 the Reviewer.

References

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