{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,4,1]],"date-time":"2026-04-01T14:42:02Z","timestamp":1775054522908,"version":"3.50.1"},"reference-count":20,"publisher":"Association for Computing Machinery (ACM)","issue":"6","license":[{"start":{"date-parts":[[2017,11,20]],"date-time":"2017-11-20T00:00:00Z","timestamp":1511136000000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Graph."],"published-print":{"date-parts":[[2017,12,31]]},"abstract":"<jats:p>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.<\/jats:p>\n          <jats:p>\n            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\n            <jats:italic>microfacet-based normal mapping<\/jats:italic>\n            model is well-defined, symmetric, and energy conserving, and thus yields identical results with any path tracing algorithm (forward, backward, or bidirectional).\n          <\/jats:p>","DOI":"10.1145\/3130800.3130806","type":"journal-article","created":{"date-parts":[[2017,11,22]],"date-time":"2017-11-22T16:25:08Z","timestamp":1511367908000},"page":"1-12","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":20,"title":["Microfacet-based normal mapping for robust Monte Carlo path tracing"],"prefix":"10.1145","volume":"36","author":[{"given":"Vincent","family":"Sch\u00fcssler","sequence":"first","affiliation":[{"name":"Karlsruhe Institute of Technology"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Eric","family":"Heitz","sequence":"additional","affiliation":[{"name":"Unity Technologies"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Johannes","family":"Hanika","sequence":"additional","affiliation":[{"name":"Karlsruhe Institute of Technology"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Carsten","family":"Dachsbacher","sequence":"additional","affiliation":[{"name":"Karlsruhe Institute of Technology"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2017,11,20]]},"reference":[{"key":"e_1_2_2_1_1","doi-asserted-by":"publisher","DOI":"10.1145\/965139.507101"},{"key":"e_1_2_2_2_1","doi-asserted-by":"publisher","DOI":"10.1145\/2508363.2508422"},{"key":"e_1_2_2_3_1","doi-asserted-by":"publisher","DOI":"10.1145\/964965.808601"},{"key":"e_1_2_2_4_1","doi-asserted-by":"publisher","DOI":"10.1145\/1276377.1276412"},{"key":"e_1_2_2_5_1","first-page":"32","article-title":"Understanding the masking-shadowing function in microfacet-based BRDFs","volume":"3","author":"Heitz Eric","year":"2014","unstructured":"Eric Heitz . 2014 . Understanding the masking-shadowing function in microfacet-based BRDFs . Journal of Computer Graphics Techniques 3 , 2 (2014), 32 -- 91 . Eric Heitz. 2014. Understanding the masking-shadowing function in microfacet-based BRDFs. Journal of Computer Graphics Techniques 3, 2 (2014), 32--91.","journal-title":"Journal of Computer Graphics Techniques"},{"key":"e_1_2_2_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/2897824.2925943"},{"key":"e_1_2_2_7_1","unstructured":"Wenzel Jakob. 2010. Mitsuba renderer. (2010). http:\/\/www.mitsuba-renderer.org.  Wenzel Jakob. 2010. Mitsuba renderer. (2010). http:\/\/www.mitsuba-renderer.org."},{"key":"e_1_2_2_8_1","volume-title":"The Iray Light Transport Simulation and Rendering System. arXiv preprint arXiv:1705.01263","author":"Keller Alexander","year":"2017","unstructured":"Alexander Keller , Carsten W\u00e4chter , Matthias Raab , Daniel Seibert , Dietger van Antwerpen , Johann Kornd\u00f6rfer , and Lutz Kettner . 2017. The Iray Light Transport Simulation and Rendering System. arXiv preprint arXiv:1705.01263 ( 2017 ). Alexander Keller, Carsten W\u00e4chter, Matthias Raab, Daniel Seibert, Dietger van Antwerpen, Johann Kornd\u00f6rfer, and Lutz Kettner. 2017. The Iray Light Transport Simulation and Rendering System. arXiv preprint arXiv:1705.01263 (2017)."},{"key":"e_1_2_2_9_1","unstructured":"Mercenaries. 2016. Guerilla Render 1.4.2 documentation. http:\/\/guerillarender.com\/doc\/1.4\/Library_Attributes_NormalMap.html.  Mercenaries. 2016. Guerilla Render 1.4.2 documentation. http:\/\/guerillarender.com\/doc\/1.4\/Library_Attributes_NormalMap.html."},{"key":"e_1_2_2_10_1","doi-asserted-by":"publisher","DOI":"10.1145\/1730804.1730834"},{"key":"e_1_2_2_11_1","unstructured":"Pixar. 2015. RenderMan 20 Documentation. https:\/\/renderman.pixar.com\/resources\/current\/RenderMan\/PxrNormalMap.html.  Pixar. 2015. RenderMan 20 Documentation. https:\/\/renderman.pixar.com\/resources\/current\/RenderMan\/PxrNormalMap.html."},{"key":"e_1_2_2_12_1","doi-asserted-by":"publisher","DOI":"10.1145\/2897824.2925945"},{"key":"e_1_2_2_13_1","unstructured":"SolidAngle. 2016. Arnold for Maya User Guide: Bump Mapping. https:\/\/support.solidangle.com\/display\/AFMUG\/Bump+Mapping.  SolidAngle. 2016. Arnold for Maya User Guide: Bump Mapping. https:\/\/support.solidangle.com\/display\/AFMUG\/Bump+Mapping."},{"key":"e_1_2_2_14_1","doi-asserted-by":"publisher","DOI":"10.1080\/2151237X.2005.10129203"},{"key":"e_1_2_2_15_1","doi-asserted-by":"publisher","DOI":"10.1364\/JOSA.57.001105"},{"key":"e_1_2_2_16_1","doi-asserted-by":"publisher","DOI":"10.5555\/275458.275467"},{"key":"e_1_2_2_18_1","doi-asserted-by":"publisher","DOI":"10.1145\/218380.218498"},{"key":"e_1_2_2_19_1","doi-asserted-by":"publisher","DOI":"10.1109\/38.536271"},{"key":"e_1_2_2_20_1","doi-asserted-by":"publisher","DOI":"10.1145\/2601097.2601155"},{"key":"e_1_2_2_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/2897824.2925915"}],"container-title":["ACM Transactions on Graphics"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3130800.3130806","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3130800.3130806","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T02:26:17Z","timestamp":1750213577000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3130800.3130806"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2017,11,20]]},"references-count":20,"journal-issue":{"issue":"6","published-print":{"date-parts":[[2017,12,31]]}},"alternative-id":["10.1145\/3130800.3130806"],"URL":"https:\/\/doi.org\/10.1145\/3130800.3130806","relation":{},"ISSN":["0730-0301","1557-7368"],"issn-type":[{"value":"0730-0301","type":"print"},{"value":"1557-7368","type":"electronic"}],"subject":[],"published":{"date-parts":[[2017,11,20]]},"assertion":[{"value":"2017-11-20","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}