|
|
stbenge <stb### [at] hotmailcom> wrote:
> While building a mesh macro earlier, I noticed a bug when using the
> area_illuminate keyword with an open object. The new keyword treats all
> open objects as if they have double_illuminate enabled in their object
> definitions. This probably explains my confusion during earlier attempts
> to use area_illuminate with shadowless light sources.
It's not a bug, it's intentional. I forgot to mention this in the release
notes.
Area lights with area_illumination treat all objects as if they were
double-illuminated. The reason for this is that without this objects would
have ugly sharp shadow lines (much sharper than with a point light!).
The problem happens when povray has to decide whether a normal vector
is pointing towards a light source (in which case illumination is calculated)
or away from it (in which case illumination from that light source is
completely skipped). There are three possible solutions for this:
1) Treat all objects as double-illuminated. The advantage of this is that
the decision is very fast to make, and closed surfaces will self-shadow
and present no problems. Only open surfaces present problems.
2) Calculate whether any part of the area light is visible from the current
point by a more complicated algorithm. (Maybe testing against each corner
of the area light could be enough, except in the case of the circular
area light.) This will make the whole rendering slower because the
algorithm would be spawned for each intersection point between a ray
and a surface. It also may cause artifacts on the "dark side" of open
surfaces, in which case it's not really a solution at all.
3) Just treat the area light as if it was a basic grid of point lights
which results in perfect lighting (at least if the grid is dense enough),
but there would be absolutely no speed benefit in having a specialized
area_illumination feature as the exact same effect (including speedwise)
could be accomplished by simply creating a grid of point lights.
Which one do you prefer?
--
- Warp
Post a reply to this message
|
|