Skip to main content
GameDev.net gamedev.net
🔒 Locked

BRDF range -- greater than 0...1 ?

Started by golloween Jul 17, 2004 at 8:36 AM 4 replies 5.8k views
Original Post
golloween
golloween
Hi, I'm trying to understand how can a BRDF return values greater than 1? Most papers I read on this topic mention that BRDF is not bounded by the range 0...1. I mean, if the BRDF can return values greater than one, we can have a situation where the intensity of outgoing light will be GREATER than the intensity of the incoming light -- against the energy conservation law. We calculate the intensity of the outgoing light (Lo) by modulating the intensity of the incoming light (Li), and a cosine of the angle between the surface normal and the incoming vector (theta): Lo = BRDF(...) * Li * Cos(theta) If BRDF in the equation above is greater than 1, as papers on BRDF often mention, Lo can be greater than Li!! Please help -- how can a BRDF be energy-conserving if it is not bounded by 0...1 range? Thank you, Vladimir.
ApochPiQ
ApochPiQ
Well for one thing, there is no need for a BRDF to be energy-conserving. Ambient lighting terms and emissive surfaces both violate energy conservation (unless your graphics system is actually a very sophisticated physics simulation). These functions may not be physically correct, but then a huge part of graphics is based on approximation rather than physically accurate simulation.

Not clamping to [0, 1] and not conserving energy are really separate issues. Emissive surfaces may sometimes produce "excessive" intensity values from a BRDF, and as mentioned before ambient lighting terms violate energy conservation. The most useful reason for not clamping to [0, 1] that I am aware of is HDR.
Pragma
Pragma
Because the BRDF is a Distribution. A BRDF of 1/PI means that all the incoming energy is redistributed evenly over the hemisphere.

Now suppose for a given incoming angle the BRDF is zero on half of the hemisphere. Then it is outputting half the energy that's coming in. So now, without violating conservation of energy, the rest of the hemisphere could have a BRDF value of 2/PI. You can repeat this indefinitely as long as the brdf integrates to one. Specular BRDFs for example, have a value of infinity at the specular peak.
"Math is hard" -Barbie
golloween
golloween
Yes, the ambient term and emissive surfaces do violate energy conservation, but those papers usually talk about normal non-emissive Phong-like BRDFs with no ambient term.

Here's a good example:
http://www.gdconf.com/archives/2004/hoffman_naty.doc

This paper suggests that the Phong specular term can be made energy-conserving "by multiplying the specular term by (n+4)/8 (which would normalize it, ensuring energy conservation)" -- see page 12.

If we assume n = 200 (a Phong exponent for a shiny material), this strange expression will evaluate to 25.5. This means that in some cases the brightness of the specular highlight can be 25 times higher than the intensity of the incoming light!

How can THIS conserve energy?
golloween
golloween
Thanks Pragma -- if I understand you correctly, a BRDF can return any values as long as it integrates to 1 over the entire hemisphere. But I still can't understand this from a practical point of view.

Let's assume that we have one light source with the intensity Li = 1. And our surface has a pure specular BRDF which resolves to infinity at the peak.

Let's calculate the intensity of outgoing light at normal incidence:

Lo = Infinity * Li * Cos(0), which evaluates to
Lo = Infinity * 1 * 1 = Infinity!

Please correct me if I'm wrong here, but how can we get an outgoing intensity of infinity if we only have an incoming intensity of 1? Isn't this a perpetuum mobile?
Pragma
Pragma
I think where you are confused is with the different units when talking about light. The BRDF is actually a ratio of radiance to irradiance. These are actually quite different units.

I would suggest reading the notes on radiometry and reflectance found here:
http://www.cgl.uwaterloo.ca/~mmccool/cs788/index.html

For the example you give, the answer actually should be infinity, because point lights are only an approximation of real light sources.

For example, take the case of looking directly at a point light. The amount of energy is finite, but its area as zero. So if you calculate the amount of energy per unit area, you get infinity.

Now if you look at the light through a perfect mirror (as in the case of perfect specular brdf) you should (and you did) get the same answer, an infinite amount of light per unit area. This is not a contradiction, just a limitation of working with point lights.
"Math is hard" -Barbie

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.