Normalized Blinn Phong

Started by
1 comment, last by MJP 8 years, 2 months ago

In the 3rd edition of Real-time rendering, the authors base the specular reflectance off roughness and the fresnel effect:

(m+8)/(8pi) * R_F(a_h)cos^m(t_h)

It seems that for a really large m and where the normal and half vector are close to each other, the result of the above expression will be a large number much greater than 1.

Won't this amplify the amount of reflected specular light? It's not making sense to me because then won't the reflected light be greater than the incoming light? How is that possible?

-----Quat
Advertisement

This non-intuitive-ness comes from the fact that we're dealing with energy derivatives here, not real, concrete amounts of energy.

The area under the specular function cannot be greater than 1 or it will be creating extra energy out of nowhere. The function itself can be higher than 1 at individual points.

The "perfect mirror" specular BRDF is actually a delta function, which returns infinity at one single reflection direction and zero everywhere else. The area underneath that function is actually 1, even though it's infinitely tall and thin...

Calculus is a hell of a drug.

You should read through the section called "BRDF Characteristics" in chapter 7, specifically the part where they cover directional-hemispherical reflectance. This value is the "area under the function" that Hodgman is referring to, and must be <= 1 in order for a BRDF to obey energy conservation. As Hodgman mentioned a BRDF can still return a value > 1 for a particular view direction, as long as the result is still <= 1 after integrating about the hemisphere of possible view directions.

This topic is closed to new replies.

Advertisement