|
![](/i/fill.gif) |
In article <4124c57e$1@news.povray.org>, "JWV" <jwv|at|planet.nl> says...
> "Patrick Elliott" <sha### [at] hotmail com> wrote in message
> news:MPG.1b8c2722aa0cd162989b13@news.povray.org...
> Just as Patrick, i don't know all the details of the way povray works, but
> i'll try to explain a way to get the effect Patrick means.
>
> - When making the scene one should be able to make some objects "master"
> objects, like this:
>
> box{0,1 master}
>
> during the render, when a ray hits an object, the program should check
> wether there is an other object nearby (say within a radius of 0.0001).
> When there is one, and it's a master object, the ray should pretend to be
> hitting the master object. This way one could easely avoid coincident
> surfaces.
>
> The drawback will be -as usual- speed, especialy the checking for nearby
> objects.
>
> No idea wether it is possible, usefull etc. But this is what i came up with
> while reading Patricks post.
>
Hmm. Using MS LookOut by any chance? The reply/post parts are in a non-
standard order in yours.
As for your idea. It probably wouldn't speed things up any and it is also
flawed. It doesn't take into account 'where' a ray is when such a
collision happens. If the correct result should have been object 'A',
then 'B', then some paths will produce 'B' - 'A' instead, so which one do
you make the 'master'? This is especially bad in the case of animations,
since the objects relative locations and the order a ray hits them
changes, so forcing an order on them will fail. You need to have it
behave correctly from the perspective of the real order, not one defined
using some arbitrary setting. If you are already determining which actual
surface was struck, I can't imagine any gain from setting an arbitrary
master object, instead of just calculating the 'real' location of the
surface, based on a vector that points to its physical center, which is
different then inside/outside, which 'might' otherwise provide the same
info.
--
void main () {
call functional_code()
else
call crash_windows();
}
Post a reply to this message
|
![](/i/fill.gif) |