|
|
: Good news: I made the bug disappeared by modifying the
: Tesselate_Object function so that :
: DBL CoordZ1 = Min[Z] + IndZ*Size[Z]/ZAccuracy;
: DBL CoordZ2 = Min[Z] + (IndZ+1)*Size[Z]/ZAccuracy;
: is now
: DBL CoordZ1 = Min[Z] + (IndZ-0.001)*Size[Z]/ZAccuracy;
: DBL CoordZ2 = Min[Z] + (IndZ+1.001)*Size[Z]/ZAccuracy;
: (And so on for the other coordinates over X and Y).
I'm not happy with this kind of "kludge". I want to know why the problem
happens and why that "solution" seems to correct it, and when I know it,
I want to apply the correct solution at the correct place.
I don't think that those modifications are answer.
: Bad news: this modification request that you remove the
: optimisation that reused the intersection from the previous
: round... because now the cubes are not contiguous, but slightly
: overlapping.
That's exactly why I don't like that solution at all. Slightly overlapping
boxes mean slightly overlapping triangles, which don't share vertices
(but probably cut each other or can even leave tiny gaps).
I suppose that the solution may have to be implemented in the intersection
calculation part and/or the insideness test.
The most important thing, however, is to understand why the problem happens.
: So I tried to use a split into five tetrahedrons
: (four corner and one central (twice the volume of the corner))
: and I found it to work quicker and yet to provide a better
: visual (well, personnal opinion anyway (moreover, I'm biased...))
This might be a good idea. Thanks.
--
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
|
|