Cook-Torrance / BRDF General

Started by
10 comments, last by HSDXPRO 8 years, 3 months ago

Looking through one of Disney's papers, I came across what they refer to as "Generalized Trowbridge-Reitz."

[attachment=13595:Untitled.png]

The one in the middle is supposedly Trowbridge-Reitz/GGX, and the one on the bottom is the generalized version, but I don't understand the way they have their equations set up.

Edit:

Ok, after looking at a more detailed paper, it looks like the normalized version of their Generalized Trowbridge-Reitz is this:

[attachment=13596:eqn.png]

This is interesting because by altering gamma you can adjust the size of the specular tail. Adjusting it doesn't seem very intuitive though. Adjusting gamma not only changes the size of the specular tail, but also changes the point at which it peaks. Is there a way to make alpha and gamma independent?

Advertisement

Hello !

(1 - f0) is really bad for larger than 0 Roughness values.

You should integrate the fresnel with GGX or some other microfacet models.

But I know a good approximation, u can just simply integrate fresnel from 0 to Roughness then divide by Roughness
Assume Fresnel(0, SpecularColor) gives you SpecularColor
Assume Fresnel(1, SpecularColor) gives you 1

finalcolor = specular + someNonFresnelDiffuseModel * integrate( (1 - Fresnel) / R , from 0 to R )

R division needed because the same amount of microfacets should lie between 0 and R

FGD / ( 4 * NoV * NoL) is the good Cook Torrance equation. I checked it numerically and analitically, It's perfect for geometrical behavior. Diffraction is another question

This topic is closed to new replies.

Advertisement