POV-Ray : Newsgroups : povray.advanced-users : Spatial resolution of transparency calculation? Server Time
31 Oct 2024 08:19:42 EDT (-0400)
  Spatial resolution of transparency calculation? (Message 1 to 4 of 4)  
From: tcrass
Subject: Spatial resolution of transparency calculation?
Date: 29 Mar 2007 02:21:05
Message: <460b68e1$1@news.povray.org>
Hi everyone,

the scene below demonstrates a phenomenon I encountered when rendering 
multiple (semi-)transparent, partially overlapping discs (and no, it's 
not the common max_trace_level thing). It seems that when the distance 
between the discs is below a certain (and, at least to me, surprisingly 
high) threshold, the remote disc's color doesn't shine through the near 
disc. Funny enough, when replacing the remote disc with a cylinder (the 
closer cap of which should conicide with the former disc), everything 
turns out fine.

So does anyone know how this comes about and how to avoid it
Thanx --

	Torsten


Post a reply to this message

From: tcrass
Subject: Here comes the scene...
Date: 29 Mar 2007 02:22:50
Message: <460b694a$1@news.povray.org>
Oops -- forgot something...

--------<8--------

#declare d1 = 0.001;
#declare d2 = 0.0001;

camera {
   location -10*z
}

disc {0 z 5
   texture {
     pigment {
       color rgb <1, 0, 0>
     }
     finish {
       ambient 1
       diffuse 0
     }
   }
}

disc {0 z 3
   texture {
     pigment {
       color rgbt <1, 1, 1, 0.9>
     }
     finish {
       ambient 1
       diffuse 0
     }
   }
   translate <-3, 0, -d1>
}

disc {0 z 3
   texture {
     pigment {
       color rgbt <1, 1, 1, 0.9>
     }
     finish {
       ambient 1
       diffuse 0
     }
   }
   translate <3, 0, -d2>
}


Post a reply to this message

From: Mark Weyer
Subject: Re: Spatial resolution of transparency calculation?
Date: 29 Mar 2007 06:20:01
Message: <web.460b9fd0a599376bfddaa4670@news.povray.org>
> the scene below demonstrates a phenomenon I encountered when rendering
> multiple (semi-)transparent, partially overlapping discs (and no, it's
> not the common max_trace_level thing). It seems that when the distance
> between the discs is below a certain (and, at least to me, surprisingly
> high) threshold, the remote disc's color doesn't shine through the near
> disc. Funny enough, when replacing the remote disc with a cylinder (the
> closer cap of which should conicide with the former disc), everything
> turns out fine.
>
> So does anyone know how this comes about and how to avoid it
> Thanx --

Yes, there is a threshold: When the ray leaves one disc pov ignores any
intersections that occur before it has travelled at least <insert value
here>. This is neccessary in order to avoid numerical artefacts, which
could otherwise cause pov to think the ray has hit the same disc again.
If this does not happen with solid primitives (like the cylinders you
mention), maybe there is a check whether the ray, after travelling the
threshold, is *inside* the object, which would then count as an
intersection. Or, maybe, what you see is just the opposite cap.

I do not know, why the threshold is as large as it is; this has baffled
me too at times. Maybe it is because some of the primitives use forth
powers. I seem to recall that tori with a small second radius were a
problem at some point.

How to avoid: Scale the scene so that such proximities do not occur.
Be sure to adjust the density of media, then: If you scale by a factor
f, all densities should be divided by f.


Post a reply to this message

From: tcrass
Subject: Re: Spatial resolution of transparency calculation?
Date: 29 Mar 2007 09:13:40
Message: <460BC993.2090109@eBiology.de>
Hi Mark,

> Yes, there is a threshold: When the ray leaves one disc pov ignores any
[...]
> intersection. Or, maybe, what you see is just the opposite cap.

ah, thanks, that was really elucidating! :-)

> I do not know, why the threshold is as large as it is; this has baffled
> me too at times. Maybe it is because some of the primitives use forth
> powers. I seem to recall that tori with a small second radius were a
> problem at some point.

It seems that the threshold differs from shape to shape; when replacing 
the discs with polygons (see below), I could decrease the distance by 
several orders of magnitude before the effect occured.

> How to avoid: Scale the scene so that such proximities do not occur.

Well, yes... still I am surprised that it should not be possible to have 
objects less than 10^-3 units apart, since (I assume) many people will 
probably model scenes with something like 1 unit = 1 meter in mind, with 
10^-3 corresponding to 1 mm, a level of detail quite likely to occur in 
real scenes.

Anyway, thanks for the hint -- will now figure out how to live with that 
  limitation...

	Torsten


--------8<--------

#declare d1 = 0.0000001;
#declare d2 = 0.00000001;

camera {
   location -10*z
}

polygon {4 x, y, -x, -y scale 5
   texture {
     pigment {
       color rgb <1, 0, 0>
     }
     finish {
       ambient 1
       diffuse 1
     }
   }
}

polygon {4 x, y, -x, -y scale 3
   texture {
     pigment {
       color rgbft <1, 1, 1, 0, 0.9>
     }
     finish {
       ambient 1
       diffuse 1
     }
   }
   translate <-3, 0, -d1>
}

polygon {4 x, y, -x, -y scale 3
   texture {
     pigment {
       color rgbft <1, 1, 1, 0, 0.9>
     }
     finish {
       ambient 1
       diffuse 1
     }
   }
   translate <3, 0, -d2>
}


Post a reply to this message

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