POV-Ray : Newsgroups : povray.unofficial.patches : Tesselation patch v. 0.1alpha : Re: Tesselation patch v. 0.1alpha Server Time
2 Sep 2024 00:17:47 EDT (-0400)
  Re: Tesselation patch v. 0.1alpha  
From: Warp
Date: 31 Jan 2001 05:06:52
Message: <3a77e3bc@news.povray.org>

: bogus happen when one vertex is ON the object.

  I really don't understand why this would be any problem.
  If a vertex is exactly on the surface of the object, it will be considered
either inside or outside (depending on the inside testing function for that
specific object). This shouldn't be a problem. There isn't any third mode
which isn't either inside or outside. The point is either inside or it is
outside.
  An adjacent tetrahedron shares the same point and the same insideness of
that point. It's not like that point was inside for one tetrahedron and
outside for the adjacent tetrahedron sharing the same point. I can't believe
that the insideness test for any object would give different results for
the _exact_ same point in different calls.

: Let me explain: the code use the Inside_ functions to know if a 
: point of a cubic net is either inside or outside the object.
: The fact is that it miss a subtlety : a point can be outside, inside
: or on the surface.

  No, there aren't three modes, just two. A point is either inside or outside.
The function doesn't return three values, just two. A point that is exactly
on the surface of the object will be considered one of the two, so I don't
understand why it should matter.

: As later an intersection is only searched between an outside and an inside
: vertex, It happens that a point which is EXACTLY ON the surface
: is tagged as OUTSIDE (at least for spheres.c, and we do not want to
: change this, do we ?).

  Yes, but for an adjacent tetrahedron the same vertex will give also "outside"
while another vertex will give "inside" and the trace will be performed.
  I don't understand how a part of the surface can be missed even if a vertex
of a tetrahedron is exactly on the surface of the object.

  This would make sense if the insideness test function would return different
values for the exact same point in different calls. However, I can't understand
why it would do that. That would require some really, really odd implementation
(like using rand() or something).

-- 
char*i="b[7FK@`3NB6>B:b3O6>:B:b3O6><`3:;8:6f733:>::b?7B>:>^B>C73;S1";
main(_,c,m){for(m=32;c=*i++-49;c&m?puts(""):m)for(_=(
c/4)&7;putchar(m),_--?m:(_=(1<<(c&3))-1,(m^=3)&3););}    /*- Warp -*/


Post a reply to this message

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