|
|
In article <3D286CB1.B70525CA@gmx.de>, Tim Nikias <tim### [at] gmxde>
wrote:
> Nontheless, I think that it could be done, but is probably pretty
> difficult to implement into the already existing code. I don't know
> how much information a ray "carries" with itself (rgb-values,
> reflection-values, ior-values etc), but you would have to add
> the distance any certain lightsource has to the calculated position.
> If you've got like a dozen lightsources, the data increases exponentially,
> because for every next ray, these dozen lightsources needs to be
> consulted again...
You are forgetting the fact that a single light source can have many
ways to get to a point by reflecting or being refracted. You are back to
the reason caustics are difficult to implement.
I think the photon mapping algorithm does simulate this: Light doesn't
grow fainter with distance (ignoring atmospheric attenuation for now),
it grows fainter as it spreads out. As photons spread out, the photon
density drops, making the light dimmer.
That statement seems to be a bit unnecessary, since without photons,
refracted or reflected light isn't computed at all. I don't know how
transmitted light behaves, but it shouldn't require much special
handling...just use the distance of the light to the current point
instead of the first intersection. I would assume light falloff happens
through transmitting and filtering surfaces, there is no technical
reason for a different behavior.
--
Christopher James Huff <chr### [at] maccom>
POV-Ray TAG e-mail: chr### [at] tagpovrayorg
TAG web site: http://tag.povray.org/
Post a reply to this message
|
|