cff5c9d

committed
# Commits

# Comments (0)

# Files changed (2)

# input/pub/smoothie/index.textile

It is possible to analytically derive Smith's shadowing/masking term for Smoothie; the method has been outlined in [GGX paper], however it produces visually displeasing bright halos around the object [figure]. The same phenomenon can be observed in GGX, which hints that Smith's shadowing/masking term might not be a good fit for non-Gaussian BRDFs. The much cheaper geometric term introduced by [Kelemen-Szirmay-Kalos] can be used instead:

+where \(h = L + V\) is the unnormalized half-angle vector. _Note that the numerator cancels itself out with the denominator of the full microfacet BRDF_.

-The proposed approximation diverges significantly from the actual Fresnel curve where \(L \cdot H < 0.2\); this is demonstrated in the following graph:

+On the other hand, the proposed approximation diverges significantly from the actual Fresnel curve where \(L \cdot H < 0.2\); this is demonstrated in the following graph:

-The error is not an issue in practice; in fact, clamping the Fresnel term actually reduces aliasing in real-time rendering.

+The error is not an issue in practice; in fact, clamping the Fresnel term actually reduces aliasing in real-time rendering, because typically only a few pixels at object boundaries would receive the full Fresnel reflections.

+Please note that the approximation only works for direct lighting, and it will break down if used for environment mapping. Because of the way that environment mapping is typically evaluated in real-time rendering, the interpolation curve will be calculated for \(V \cdot N\) instead of \(L \cdot H\), and the values of the former will be much closer to zero.

# textileTemplatePrefix.txt

<link rel="stylesheet" type="text/css" media="screen, projection" href="%(siteRoot)sslider/slider.css" />

- <script type="text/javascript" src="~~%(siteRoot)sMathJax~~/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>

+ <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>