Skip to content

Correct anisotropic Smith masking equation - #3015

Open
tdavidovicNV wants to merge 1 commit into
AcademySoftwareFoundation:mainfrom
tdavidovicNV:spec/fix-anisotropic-smith-g2
Open

Correct anisotropic Smith masking equation#3015
tdavidovicNV wants to merge 1 commit into
AcademySoftwareFoundation:mainfrom
tdavidovicNV:spec/fix-anisotropic-smith-g2

Conversation

@tdavidovicNV

Copy link
Copy Markdown
Contributor

While reviewing #2964, I found that the anisotropic GGX masking-shadowing equation first reduces alpha_x and alpha_y to their geometric mean. This removes the azimuthal dependence from G2, even though the NDF immediately above it is anisotropic.

This PR updates the specification to use the direction-dependent projected roughness from Heitz 2014 and the corresponding height-correlated Smith term, following the OSL testrender and the current state of the art. It reduces to the existing scalar equation when alpha_x = alpha_y.

For alpha_x = 0.1, alpha_y = 0.8, and incident and outgoing directions 60 degrees from the normal:

Incident/outgoing azimuth Geometric-mean G2 Anisotropic correlated G2
x / x 0.898027 0.985329
x / y 0.898027 0.734298
y / y 0.898027 0.585206

This does not change any of the actual implementations, and adds an implementation note to the spec:

Heitz, Understanding the Masking-Shadowing Function in Microfacet-Based BRDFs, equations 80, 86, and 99.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant