|
![](/i/fill.gif) |
On Sat, 30 Jan 1999 07:14:23 -0800, Ken <tyl### [at] pacbell net> wrote:
>If I have an object constructed using a CSG operation I get
>two different results in the rendered object if I apply the
>pigment and interior properties to the different pieces
>versus the CSG as a single object ( see example ).
>The difference is quite visible.
This is similar to the problem that used to exist when IOR
was part of the texture. POV keeps track of a stack of
pointers to interiors, and when it hits a face it knows
whether it is entering or exiting that object by checking
the stack to see if it's already inside that interior.
What does this mean? Let's look at an example.
Take the lens-shaped intersection of two spheres. First, the
case where the two spheres have their own interiors, with
the same IOR, let's say 1.5. the ray enters the lens through
sphere 1 and gets refracted as though it were going from an
IOR of 1 to an IOR of 1.5, which is correct. It then exits
through sphere 2, but because sphere 2 has a different
interior from the one on the stack (distinct from sphere 1's
interior, but with the same parameters) POV thinks it is now
entering sphere 2. It tries to refract the ray commensurate
with passing from an IOR of 1.5 to an IOR of 1.5, which has
no net effect. The result is POV now believes the ray is
in two interiors and is traveling through a medium of IOR
1.5, and it's not going in the direction you'd expect.
Now, the case where the interior applies to the object as
a whole: The ray enters through sphere 1 and gets refracted
as before. It exits through sphere 2, but this time POV
sees the same pointer and properly exits the sphere. Since
it is now going from an IOR of 1.5 back to what it was (1)
it bends the ray appropriately and pops the interior from
the stack.
POV should probably issue a warning if an object with an
interior is used in a CSG or is clipped, with the possible
exception of union.
Post a reply to this message
|
![](/i/fill.gif) |