Normalizing the Fresnel Equation

This topic is 1749 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

Recommended Posts

So, you are supposed to normalize a BRDF equation so that it sums to 1 over the hemisphere.  It seems that everybody goes out of their way to normalize the NDF portion; however, I was wondering about the other portions.  Wouldn't it make sense to normalize the whole equation including the Fresnel term for example?  I did some Google searching and came across this:

http://seblagarde.wordpress.com/2011/08/17/hello-world/

"When working with microfacet BRDFs, normalize only microfacet normal distribution function (NDF)"

…but then I ask myself, why?  The writer doesn’t seem to give any explanation why.  Does anybody know?

Share on other sites

Fresnel doesn't add or remove energy, it simply controls the ratio of refraction to reflection.

Share on other sites

Fresnel doesn't add or remove energy, it simply controls the ratio of refraction to reflection.

Though when considering opaque materials, the refracted part is typically considered absorbed (and is, to a first order approximation). The BRDF doesn't have to sum up to exactly 1 over the hemisphere, it just can't sum up to more than 1 (or less than zero, obviously). The Fresnel equations are already normalized as Chris_F notes, being physically based and all, so you don't need to worry about it.

Share on other sites

It's not something you need to normalize on its own, however if you're using a fresnel term then you should definitely include it in your integral when verifying that your full BRDF is energy conserving.

Share on other sites

Well, if I normalize Shlick's approximation I get:

http://www.wolframalpha.com/input/?i=solve%281+%3D+c+*+integrate%28s+%2B+%281-s%29%281-cos%28x%29%29^5*sin%28x%29%2C+x%2C+0%2C+pi%2F2%2C+y%2C+0%2C+2*pi%29%2C+c%29

and combining with Shlick's approximation I get:

http://www.wolframalpha.com/input/?i=3%2F%283+*+pi^2*s+-+pi+*+s+%2B+pi%29+*+%28s+%2B+%281-s%29*%281+-+cos%28x%29%29^5%29

but maybe this doesn't make sense.  I'm thinking it doesn't have to match 1 exactly, but if I integrate it over the hemisphere I get:

http://www.wolframalpha.com/input/?i=integrate%282+*pi+*%28s+%2B+%281-s%29%281-cos%28x%29%29^5*sin%28x%29%29%2C+x%2C+0%2C+pi%2F2%29

and if F(0) is 0 we get 1, and if F(0) is 1 we get:

http://www.wolframalpha.com/input/?i=pi^2+-+1%2F3+*+pi++%2B+1

Currently I've been looking at GGX and the GGX term itself is already normalized, but the GGX geometry term may or may not be normlized.  I have no way to verify this without shelling out money for Mathmatica.  So, I was hoping to trust the geometry term and normalize the Fresnel.