POV-Ray : Newsgroups : povray.programming : An Idea for "Backwards-Raytracing" Server Time
29 Jul 2024 08:12:57 EDT (-0400)
  An Idea for "Backwards-Raytracing" (Message 1 to 3 of 3)  
From: Adrian A  Baumann
Subject: An Idea for "Backwards-Raytracing"
Date: 25 Jul 1998 21:03:30
Message: <35ba7252.0@news.povray.org>
Hiya Folks,

I had an idea about a possible new feature today:
There could be an object-level keyword "backwards_samples" or whatever you
want to call itwhich would work as follows.
Imagine a ray traced "forwards", i.e. from the spectator towards the scene.
Whenever the ray hits an object, the desired number of ray is spawned from
this point towards the objects that have the "backwards_samples" keyword
set. If this ray doesn't hit a light source (or pass very close to one), it
is disregarded. If, however, it does, the point this new ray comes from
could be made lighter. I'm thinking about another kind of caustics here.
This would not limit the effect of caustics to the shadow of the object,
although it would make tracing quite a bit slower...
If we also take the other objects' ambient value into account, this could be
used to have some sort of "faked radiosity", depending on speed and
usefulness.

Let me know what do you think.

Ade


Post a reply to this message

From: ?
Subject: Re: An Idea for "Backwards-Raytracing"
Date: 10 Aug 1998 17:57:51
Message: <35cf6006.3676613@news.povray.org>
On Sun, 26 Jul 1998 02:05:58 +0200, "Adrian A. Baumann"  wrote:
> 
> Hiya Folks,
> 
> I had an idea about a possible new feature today:
> There could be an object-level keyword "backwards_samples" or whatever you
> want to call itwhich would work as follows.
> Imagine a ray traced "forwards", i.e. from the spectator towards the scene.
> Whenever the ray hits an object, the desired number of ray is spawned from
> this point towards the objects that have the "backwards_samples" keyword
> set. If this ray doesn't hit a light source (or pass very close to one), it
> is disregarded. If, however, it does, the point this new ray comes from
> could be made lighter. I'm thinking about another kind of caustics here.
> This would not limit the effect of caustics to the shadow of the object,
> although it would make tracing quite a bit slower...
>

Then Steve Horn wrote: 

Awe yes... your idea has promise!  You're thinking that if we trace a bunch of
rays from the render point to refractive objects in the scene (those marked
with the keyword "backwards_samples")  that we could then pass these rays
through the twists and turns of the refractor and then use the
distance-of-a-point-to-a-ray to see how close the final 'escaped' ray comes to
the light source.  If alot of our rays pass close enough to the light source,
then the render point is raised in brightness to a high degree.  If alot of
the rays run far from the light source, then the point's brightness is raised
to a lesser degree.   In this way we could simulate caustics.

Well... this raises some interesting problems.  The first one that I thought
of was the problem of shooting rays _at_ an object.  Immediately this implies
that the object is bounded in some way that we can shoot rays at it in a
regular way and get a good distribution of intersections with it.  In general,
this isn't true for all of POV's objects, but luckily I've dealt with this
problem before.  PoV has these suckers called "unbounded objects", quadrics
for example,  that are impossible to shoot at with rays and gain a regular
distribution of intersections over their surfaces.  If, on the other hand, the
quadric is manually bounded, then we absolutely could get a good distribution.
(it's kinda complicated, but plausible by a certain algorithm that uses
surface normals)   It is true, that if every object in a ray-tracers library
is boundable, then it opens a veritable pandora's box of neat things you can
do.  (one of them being shoot rays _at_ an object.  some others are 'bounding
slabs' for example.  one neat thing i found was this bounded hierarchy of
voxels that theoretically doubles the speed of a ray-tracer, but that's
neither here nor there... :p )

This idea has some steam in it's engine.  To me it seems to check itself at
the door when considering the fact that light coming in from refractive
objects to a point comes from the objects themselves and does, and must!,
travel along these paths (is that a circular description?)   There are some
bizarre cases for this method though.  Say we refract the ray through the
surface and it exits the object somewhere else.  Do we take its distance with
the light now?  Or should we check and see if this ray re-enters the object to
be refracted around some more?  Again..if the object is bounded by a convex
object,  we merely wait for an exit from the bounder.

>
> If we also take the other objects' ambient value into account, this could be
> used to have some sort of "faked radiosity", depending on speed and
> usefulness.
> 

Usefulness is the problem.  If the escaped rays are then traced out into the
scene to intersect with opague objects, the ambient values could be collected
from these intersections to be returned as radiosity samples.  The problem is
that this favors diffuse light through the refracting objects, ignoring
potentially large amounts of diffuse light from elsewhere.  Though I can't
immediately think of any physical phenemona this might try to simulate, it
seems like it's in the ballpark with projection of real images by focusing
lenses.  This is a very NON-subtle effect that happens when diffuse
illumination passes through a refracting object (the caustics created by
diffuse illumination instead of direct illumination. think of an upside-down
projection of a candle flame in high school physics class)  This is an
entirely new problem that suffers from the horrible effects of discrete
sampling.  A problem is to consider that a regularly spaced distribution of
rays on one side of a refracting object will result in a very tight angular
distribution of rays on the other side.  Or worse, a regularly spaced
distribution on the entrance side will result in an entirely flared and
fleeting angular distribution on the exit side.   This is a much more
complicated problem that is better dealt with using stored samples out of the
diffusive objects.  In fact, this is a bigtime radiosity problem that seems
impossible to generalize to arbitrary surfaces. more later... :p

SteveH! :)


Post a reply to this message

From: Vance Roussin
Subject: Re: An Idea for "Backwards-Raytracing"
Date: 12 Aug 1998 00:22:25
Message: <35d10976.39365492@news.povray.org>
How about a caustic keyword for the light source and the object used
to create the caustic effect. In other words the only real
backwards-raytracing would be between those two objects. It would cut
down on the cpu-time considerably.

Just a thought.


Post a reply to this message

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