Am 18.02.2013 17:27, schrieb Nathalie:
> I would like to reformulate my question a bit. It is not my intention to make a
> perfect rendering of a church interior. It is rather my intention to render a
> part of a church interior (let's say a niche with a statue) according to three
> daylight calculation methods (ray-tracing, radiosity and photon mapping), with
> the aim of comparing these three methods.
There is room for misunderstanding here, as the three terms -
ray-tracing, radiosity and photon mapping - may each mean different
things depending on context.
"Ray-tracing" for instance, may either mean...
(A) forward raytracing, which traces more or less random rays from the
light sources, bouncing them around the scene according to the laws of
optics, until they happen hit the camera sensor (or become attenuated so
much that it's not worth tracing them further). This is pretty tedious
work and seldom done, because most light rays miss the camera, but it
can simulate virtually all there is in the realm of optics.
(B) pure backward raytracing, which traces rays in the opposite
direction, from a camera back, bouncing them around the scene according
to the laws of optics as well, until they happen to hit a light emitter
(or, again, become attenuated so much that it's not worth tracing them
further). This, too, is pretty tedious work, because a good deal of
light rays miss the emitters, but it can also simulate virtually all
there is in the realm of optics. This is exactly what MCPov does.
(C) backward raytracing with a short-cut for diffuse surfaces (classic
raytracing): Whenever a diffuse surface is encountered, the direct line
between the surface point and any light source is tested for shadowing
objects, and if there aren't any the resulting contribution of that ligt
to the surface brightness is calculated. This is pretty fast compared to
the other approaches, but can't handle light paths that involve any
refraction or reflection bewtween the light source and the diffuse
surface ("caustics"), nor can it handle light paths involving two or
more diffuse surfaces ("diffuse interreflection"). This is exactly what
"Photon mapping" is actually always an extension of classic raytracing
to fix its shortcomings. In its fullest implementation, photon mapping
can handle both caustics and diffuse interreflection (plus subsurface
BUT: POV-Ray uses photon mapping /exclusively/ for caustics. Plans to
also support diffuse interreflection seem to have existed, and POV-Ray
does contain some (dead) code for it, but it seems that it was never
Last not least, "radiosity" may either be used to denote:
(A) one particular algorithm developed in 1984 at Cornell University to
compute diffuse interreflection; this algorithm /only/ accounts for
light paths that involve nothing but diffuse surfaces, i.e. it can't
account for reflection, refraction, or even specular highlights (which
in fact are a special case of reflection).
(B) in general any algorithm to compute diffuse interreflection; one
such algorithm was described by Gregory J. Ward et al. in "A Ray Tracing
Solution for Diffuse Interreflection", and this is essentially what
POV-Ray is using. In POV-Ray, radiosity can be used independently (by
simply not including any classic point light sources, using a bright sky
sphere as the only source of illumination), but is typically combined
with classic raytracing.
(C) even more generally any rendering algorithm that, among other
effects, accounts for diffuse interreflection.
So, whether you can achieve what you want to do with POV-Ray depends a
lot on what you actually mean by "raytracing", "photon-mapping" and
> I tought POV-ray was the best choice
> to do this, because it makes control over the algorithms possible. Effects to
> improve the rendering (like glow,...) are only interesting insofar as they are
> applicable to the three calculation methods. Is this possible with POV-Ray?
In the worst case, you might be able to patch POV-Ray to implement the
desired algorithm; but you'd need C++ programming skills, and it may be
difficult to implement some of the algorithms (radiosity, for instance,
is easier to implement in a rendering framework that uses only meshes).
Post a reply to this message