POV-Ray : Newsgroups : povray.general : Energy conservation for diffuse lighting? : Re: Energy conservation for diffuse lighting? Server Time
10 Aug 2024 01:20:38 EDT (-0400)
  Re: Energy conservation for diffuse lighting?  
From: Nathan Kopp
Date: 29 Mar 2000 10:03:09
Message: <38e21b2d@news.povray.org>
Xplo Eristotle <inq### [at] unforgettablecom> wrote...
>
> So what you're saying is until/unless some more advanced and unified
> lighting model is written, I'm basically screwed and I have to guess?

It is my understanding that this is correct.

I'll explain (this is a response to your other post).

Let's say that we have an object with a surface BRDF.  The BRDF
(bi-directional reflection distribution function) is a statistical
distribution function that describes the intensity of light reflected from
the surface, given an incoming direction and an outgoing direction.
Integrating the BRDF over the hemisphere of reflection (defined by the
surface normal) should yeild 1.0 (100%).

In POV, a surface's BRDF is the sum of lambertian diffuse and specular
components.  In POV, the specular component can be described using either
"phong", "specular", or both.  In MegaPov it can also be described using
"blinn".

The light emitted by an object at an intersection point in a specific
direction is found by integrating by integrating the BRDF multiplied by the
incoming flux (light intensity) over the hemisphere of reflection.

Unfortunately, this is not computationally efficient for a ray-tracer.
Therefore, traditional ray-tracers estimate this by splitting the main
lighting equation into multiple parts.  Each part handles a specific source
of incoming light, and sometimes a specific component of the BRDF.

* The first term, known in POV as the sum of "diffuse", "specular", and
"phong", only includes light that comes from the point light sources in the
scene.  It models both the specular and diffuse components of the BRDF.
* The second term, known in POV as "reflection", takes care of light that
comes from other objects in the scene.  This component only incorporates the
specular component of the BRDF.
* The third term, known in POV as "refraction", also takes care of light
that comes from other objects in the scene.  This component does not
correspond to the BRDF.
* The fourth term, radiosity, takes care of light that comes from other
objects in the scene, like reflection.  This component, unlike reflection,
only incorporates the diffuse component of the BRDF, and also only
incorporates light that was emitted from the other objects via the diffuse
component of their BRDF.
* The fifth term, photons, takes care of light that comes from other objects
in the scene.  This component incorporates both the specular and diffuse
components of the BRDF, but it only includes light that was emitted from the
other objects via the specular component of their BRDF (or via refraction).

When you add all of these terms together, you should end up with a good
estimate of all incoming light as it interacts with all parts of the BRDF.

Unfortunately, POV doesn't use the same BRDF for different parts of this
model.  For example, the first term uses "phong" and "specular" to describe
the specular component of the BRDF.  However, the third term uses the
"reflection" property to describe this same specular component.  This
discrepancy is what leads to the limitation that you want to correct.  The
proper solution would be to define a single BRDF for the object's finish,
and then POV would use this BRDF for all terms in the lighting model.
Hopefully we will be able to address this issue in POV 4.0.

-Nathan


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.