POV-Ray : Newsgroups : povray.pov4.discussion.general : daylight : Re: daylight Server Time
19 Apr 2024 15:26:41 EDT (-0400)
  Re: daylight  
From: clipka
Date: 18 Feb 2013 16:45:44
Message: <5122a108@news.povray.org>
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 
POV-Ray does.


"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 
scattering).

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 
really implemented.


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 
"radiosity".


> 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

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