Energy conservation vs. energy normalization
Energy conservation vs. energy normalization
I'm slowly (like 10 lines per week:) ) finishing my hobby path tracer and bit stuck with BRDFs. My current understanding is that BRDF functions are normalized with reflected ray equal to surface normal, and this, for instance, gives (2+n)/(2+pi) factor for Phong model. Yet, this is not energy conversation factor, but rather to ensure that energy is not gained. Energy will be lost with other angles, since this balloon will simply be cut. Is this correct understanding? Thanks!
 Attachments

 phong.png (117.61 KiB) Viewed 1929 times

 Posts: 58
 Joined: Sun Aug 19, 2012 3:24 pm
Re: Energy conservation vs. energy normalization
Hi,
This is incorrect. A sampled value of energy conserving BRDF can be larger than 1.
For example, ideal specular BRDF is represented as:
fs(vi, vo) = delta(vi  R(vo)) / cos(vo)
This means that this BRDF gets nonzero value when mirrored outgoing ray direction (= R(vo)) perfecly matches incident direction (= vi).
Delta function has an infinite value. Therefore the BRDF value for a ray coming from the normal direction gets much larger than one, it is infinite.
We should consider integration for energy conservation.
My current understanding is that BRDF functions are normalized with reflected ray equal to surface normal
This is incorrect. A sampled value of energy conserving BRDF can be larger than 1.
For example, ideal specular BRDF is represented as:
fs(vi, vo) = delta(vi  R(vo)) / cos(vo)
This means that this BRDF gets nonzero value when mirrored outgoing ray direction (= R(vo)) perfecly matches incident direction (= vi).
Delta function has an infinite value. Therefore the BRDF value for a ray coming from the normal direction gets much larger than one, it is infinite.
We should consider integration for energy conservation.
Re: Energy conservation vs. energy normalization
shocker_0x15, he does not have a problem with BRDF values going above one, and he actually computes a proper normalization factor by integrating the unnormalized BRDF.
Indeed, in practice you will lose energy because when the reflected ray is not at normal direction, parts of the BRDF go below the surface and will be clamped to zero. So this is energy conserving (i.e. does not generate energy) but is not energy preserving. Most BRDFs used in practice are not energy preserving, because it's just too hard to compute the correct normalization factor. That is, it's impossible to derive analytically and too costly to accurately approximate numerically.
Indeed, in practice you will lose energy because when the reflected ray is not at normal direction, parts of the BRDF go below the surface and will be clamped to zero. So this is energy conserving (i.e. does not generate energy) but is not energy preserving. Most BRDFs used in practice are not energy preserving, because it's just too hard to compute the correct normalization factor. That is, it's impossible to derive analytically and too costly to accurately approximate numerically.
Click here. You'll thank me later.

 Posts: 58
 Joined: Sun Aug 19, 2012 3:24 pm
Re: Energy conservation vs. energy normalization
Ah, I have misunderstood.
Forget my post please
Forget my post please
Re: Energy conservation vs. energy normalization
So, I'm looking in close to right direction. Thanks for your help.
Return to “General Development”
Who is online
Users browsing this forum: Google [Bot] and 3 guests