|
|
Warp wrote:
> 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?
Well, since 3) would be the same as a grid of area_lights, I consider it
no new solution. Seeing how 2) produces artifacts in every case, I
rule it out. Which leaves me cheering for 1). How often do I really use
open objects? Rarely, and only under certain circumstances.
The only problem I can see is when you have a semi-transparent object.
The forced double illumination shows up there. This is no big deal for
me though.
Thanks~
Sam
Post a reply to this message
|
|