Am 07.12.2016 um 18:35 schrieb akopjan:
> When I make an intersection some parts of a body unexpectedly disappear.
Isosurfaces are a bit tricky in CSG operations.
When computing non-union CSGs, POV-Ray first queries each participating
object for all the intersections between the given ray and its surface.
In a second step, it examines these intersections one by one, starting
from the nearest, and queries the other participating objects whether
they contain that particular intersection point, until it finds one that
fits the bill.
For most primitives, querying all intersections is no more costly than
querying the nearest one (because most would have to compute all
intersections anyway, and then compare which one is closest), so there
is currently no distinctive function for the latter. However, in case of
isosurfaces it is far faster to query just the nearest intersection, so
for the sake of speed in non-CSG or union CSG scenarios, isosurfaces
will by default only report the closest intersection.
This means that in a non-union CSG scenario, if the first intersection
is discarded, the isosurface will seem to have disappeared entirely.
You can control how many intersections an isosurface will report by
setting the `max_trace` parameter, or by specifying `all_intersections`
to set the parameter to the maximum internally supported value.
Post a reply to this message