Microfacet-based normal mapping for robust Monte Carlo path tracing

Normal mapping enhances the amount of visual detail of surfaces by using shading normals that deviate from the geometric normal. However, the resulting surface model is geometrically impossible and normal mapping is thus often considered a fundamentally flawed approach with unavoidable problems for Monte Carlo path tracing, such as asymmetry, back-facing normals, and energy loss arising from this incoherence. These problems are usually sidestepped in real-time renderers, but they cannot be fixed robustly in a path tracer: normal mapping breaks either the appearance (black fringes, energy loss) or the integrator (different forward and backward light transport); in practice, workarounds and tweaked normal maps are often required to hide artifacts. We present microfacet-based normal mapping, an alternative way of faking geometric details without corrupting the robustness of Monte Carlo path tracing. It takes the same input data as classic normal mapping and works with any input BRDF. Our idea is to construct a geometrically valid microfacet surface made of two facets per shading point: the one given by the normal map at the shading point and an additional facet that compensates for it such that the average normal of the microsurface equals the geometric normal. We derive the resulting microfacet BRDF and show that it mimics geometric detail in a plausible way, although it does not replicate the appearance of classic normal mapping. However, our microfacet-based normal mapping model is well-defined, symmetric, and energy conserving, and thus yields identical results with any path tracing algorithm (forward, backward, or bidirectional).

[1]  Carsten Dachsbacher,et al.  Multiple-scattering microfacet BSDFs with the Smith model , 2016, ACM Trans. Graph..

[2]  James F. Blinn,et al.  Simulation of wrinkled surfaces , 1978, SIGGRAPH.

[3]  Pierre Poulin,et al.  Linear efficient antialiased displacement and reflectance mapping , 2013, ACM Trans. Graph..

[4]  K. Torrance,et al.  Theory for off-specular reflection from roughened surfaces , 1967 .

[5]  Marc Ouellette,et al.  It's Really Not a Rendering Bug, , 1996 .

[6]  Marc Olano,et al.  LEAN mapping , 2010, I3D '10.

[7]  Michael Toksvig Mipmapping Normal Maps , 2005, J. Graph. Tools.

[8]  Steve Marschner,et al.  Position-normal distributions for efficient rendering of specular microstructure , 2016, ACM Trans. Graph..

[9]  E. Heitz Understanding the Masking-Shadowing Function in Microfacet-Based BRDFs , 2014 .

[10]  R. Ramamoorthi,et al.  Frequency domain normal map filtering , 2007, SIGGRAPH 2007.

[11]  Steve Marschner,et al.  Rendering glints on high-resolution normal-mapped specular surfaces , 2014, ACM Trans. Graph..

[12]  Alexander Keller,et al.  The iray light transport simulation and rendering system , 2017, SIGGRAPH Talks.

[13]  Leonidas J. Guibas,et al.  Optimally combining sampling techniques for Monte Carlo rendering , 1995, SIGGRAPH.

[14]  Donald P. Greenberg,et al.  Modeling the interaction of light between diffuse surfaces , 1984, SIGGRAPH.

[15]  Leonidas J. Guibas,et al.  Robust Monte Carlo methods for light transport simulation , 1997 .

[16]  Andrew Pearce,et al.  It's really not a rendering bug, you see , 1996, IEEE Computer Graphics and Applications.

[17]  Eric Veach,et al.  Non-symmetric Scattering in Light Transport Algorithms , 1996, Rendering Techniques.

[18]  Pascal Barla,et al.  Multi-scale rendering of scratched materials using a structured SV-BRDF model , 2016, ACM Trans. Graph..