appleseed
appleseed copied to clipboard
Hazy gloss implementation based on GGX to replace usage of STD distribution
Fixes #2329
based on "A Composite BRDF Model for Hazy Gloss" by P. Barla, R. Pacanowski and P. Vangorp Eurographics Symposium on Rendering 2018 https://hal.inria.fr/hal-01818666v2/document
To implement the hazy gloss I added an as_hazy_gloss.h OSL header with functions to map the hazy gloss parametrization to two GGX lobes. Since this is a rather big change to the as_standard_surface I also introduced an as_standard_surface_next which could be used to develop and test new features before we later on replace the original as_standard_surface or introduce versioned versions (as_standard_surface_v1/2/x).
While I'm confident that the mapping for gloss and metal are correct I'm not sure if it works correctly for glass.
no hazy gloss
haziness 0.1, haze extent 0.6
no hazy metal
haziness 0.99, haze extent 0.7
no hazy glass
haziness 0.1, haze extent 0.5