Commits

Tomasz Stachowiak committed cff5c9d

moar fixes to smoothie

  • Participants
  • Parent commits 64f555a

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:
 
-$$G = \frac{4}{h \cdot h},$$
+$$G = \frac{4(N \cdot L)(N \cdot V)}{h \cdot h},$$
 
-where \(h = L + V\) is the unnormalized half-angle vector.
+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_.
 
 h3. Fresnel term
 
 
 p=. !fresnelGraph3.png!
 
-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: 
 
 p=. !fresnelGraph4.png!
 
-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.
 
 h3. TL;DR;
 

textileTemplatePrefix.txt

 		<link rel="stylesheet" type="text/css" media="screen, projection" href="%(siteRoot)sslider/slider.css" />
 		<link rel="stylesheet" type="text/css" media="screen, projection" href="%(siteRoot)sdisqus.css" />
 		<script type="text/javascript" src="%(siteRoot)sslider/slider.js"></script>
-		<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>
 		<script type="text/javascript">
 			var disqus_iframe_css = "http://h3.gd/disqus.css";
 			var disqus_identifier = "%(currentPage)s";