|
![](/i/fill.gif) |
Am 18.05.2011 21:00, schrieb SGeier:
> *IF* you are making reference to this sentence:
>
> "By default POV-Ray searches only for the first surface which the ray
> intersects. But when using an isosurface in CSG operations, the other
> surfaces must also be found. Therefore, the keyword max_trace must be added
> to the isosurface statement. It must be followed by an integer value.
>
> *THEN* I'd like to point out that this sentence is false:
Well, actually it's not.
> - The back-side of the isosurface IS the first surface the ray intersects
> after the sphere is clipped.
The catch is that the back side may be the first surface of the
isosurface /within the clipped_by object/ - but /not/ the first surface
of the isosurface /per se/ - which the ray intersects.
clipped_by is implemented as follows:
(1) The base object's intersection(s) with the ray are determined;
(2) for each intersection it is checked whether it is inside the
clipped_by object.
Any intersections not reported by step (1) are ignored.
> - It is in fact found when the 'clipper' object is visible.
>
> It only vanishes after I turn off the clipper object. Even though it is
> still the first surface of the sphere that the viewing-ray intersects
> (because all surfaces "in front of it" are clipped). Nothing has changed
> about the sphere or which of its surfaces should or should not be
> intersected by the viewing ray; all that has changed is that I made the
> clipper-volume invisible.
Note that strictly speaking the object you're making (in)visible is
/not/ the clipped_by object; rather, the two are independent objects
that just happen to be derived from the same "prototype" object (your
"clipper" object).
Once the ray hits the surface of a partially transparent object, a new
ray is shot from that intersection point in the same direction as the
original ray; with this intersection point being /inside/ the
(non-clipped) isosurface, the back side now is /truly/ the first surface
of the isosurface the ray intersects.
Again, note that the clipped_by object is /not/ a full-fledged scene
object; POV-Ray never performs any intersection tests on it when
shooting rays - it is /exclusively/ used to check whether an
already-found intersection is inside of it.
> Of course there is no reason why 3.7 should conform to the 3.6
> documentation. Which makes it a bit disingenous to point people to the 3.6
> docs when they ask questions about 3.7 regarding behaviour *that is
> definitely in conflict with the 3.6 documentation*.
That's quite a *bold* statement (in any sense, including typographic);
please be aware that /sometimes/ the developers do know POV-Ray better
than the average user ;-)
I'd agree that Thorsten may not be the best diplomat - but technically
he's right: The behaviour you're observing may be surprising, but works
as intended. Maybe the wording in the docs isn't ideal, but aside from
that there's nothing wrong.
Post a reply to this message
|
![](/i/fill.gif) |