|
|
Chris Huff <chr### [at] maccom> wrote:
:> What about specific methods for different types of objects?
: I agree, it would be nice if a sphere could use a geodesic tesselation,
: a cube could be done with 12 triangles, etc...
I can do that, but I want to get the basic tesselation to work first.
I still can't find the bug. It's making me crazy. I really don't know what
is causing it.
I'm tempted to just give up.
This is a very simple test scene where the bug shows up:
--------8<--------8<--------8<--------8<--------8<--------8<--------8<------
#declare YOffs = 0;
background { rgb z*.5 }
#default { pigment { rgb <1,.8,.6> } finish { specular .5 } }
#declare Obj = sphere { -y*YOffs,1 }
tesselate
{ Obj
accuracy 10
translate y*YOffs
}
camera { location <0,4,-13>*1.1 look_at y*.6 angle 35/10 }
light_source { <200,100,-150>, 1 }
light_source { <-200,100,-100>, x*.5 }
--------8<--------8<--------8<--------8<--------8<--------8<--------8<------
With YOffs 0 there's no bug:
http://www.cs.tut.fi/~warp/tess/tessbug1.jpg
With YOffs 4 the bug shows up:
http://www.cs.tut.fi/~warp/tess/tessbug2.jpg
With YOffs 8 more bugs show up:
http://www.cs.tut.fi/~warp/tess/tessbug3.jpg
The odd thing is that the location of the sphere shouldn't matter. Only
the size of the bounding box should have any effect on the algorithm, not
the location, and it's only the location which changes in the examples
above.
I just don't know what to do anymore.
--
main(i,_){for(_?--i,main(i+2,"FhhQHFIJD|FQTITFN]zRFHhhTBFHhhTBFysdB"[i]
):_;i&&_>1;printf("%s",_-70?_&1?"[]":" ":(_=0,"\n")),_/=2);} /*- Warp -*/
Post a reply to this message
|
|