|
![](/i/fill.gif) |
I don't think this has been reported before, so here goes:
There seems to be a bug in MegaPOV 0.7 (and possibly previous) with using
trace() on isosurfaces. Basically, trace() does not find an intersection with
the isosurface.
But interestingly, I can work around this problem in the Windows version by
rendering this scene - or any other scene using trace() - and then rendering the
scene again. And this time, everything works OK! However, I can not do the same
with my Linux compile. I suspect this has something to do with the way the
Windows GUI handles running the render engine.
A small demo scene is below. Note that when I set the radius of the contained_by
sphere equal to that of the isosurface sphere, trace() never finds an
intersection - is this to be expected?
//Begin scene
#version unofficial megapov 0.7;
#declare O=isosurface{function{"sphere",<1>} contained_by{sphere{0,1.1}}}
#declare N=<0,0,0>;
#declare T=trace(O,0,z,N);
#if(N.x=0&N.y=0&N.z=0)
#debug "No normal found!\n"
#else
#debug "All OK\n"
#end
object{O}
--
Margus Ramst
Personal e-mail: mar### [at] peak edu ee
TAG (Team Assistance Group) e-mail: mar### [at] tag povray org
Home page http://www.hot.ee/margusrt
Post a reply to this message
|
![](/i/fill.gif) |