|
![](/i/fill.gif) |
Right if I'm understanding your code correctly the problem is "open" in your
isosurface object.
"difference" is a CSG operation, that is Constructive *Solid* Geometry. If
an object is open it isn't solid, it's just and infinitely thin surface. In
case you're wondering: the extra surfaces you're seeing are the surfaces
created by taking the difference between the actual solid object, as if you
didn't use "open", and the box, open only tells pov to throw out the
implicit surfaces created by the isosurface's container but doesn't
fundamentally alter pov's idea of what shape the object is. i.e. isosurfaces
are solid regardless of whether or not their sides are invisible.
So, the solution is to use:
object{
halfbook
clipped_by {
box{
<-0.5,-0.5,-2> <0.7,0.7,5> rotate z*45 translate x*0.3
inverse //invert the object so it behaves like a differenece.
}
}
}
Or alternatively you could create a parametric surface or bicubic_patch,
both of which are actually flat, however using them in CSG is not
recommended since the results can be a little unpredictable with genuinely
non-solid objects (though in this case a difference would work fine).
--
Tek
http://evilsuperbrain.com
"Grassblade" <nomail@nomail> wrote in message
news:web.457f2dd0e8109ada98f646ed0@news.povray.org...
> Hello all, n00b here.
> I've been playing around with POV for a few weeks now, I'm currently
> interested in Isosurfaces. I tried making a book out of a page but I
> stumbled on a strange behaviour: if I replicate the page with a while loop
> I get the correct result shown in
> http://i21.photobucket.com/albums/b288/aardpast/Real%20pics/BookIso2Correct.png
> Now, when I want to cut the little tail and add a spine to the book by
> adding the following block:
> difference {
> object{halfbook}
> box{<-0.5,-0.5,-2> <0.7,0.7,5> rotate z*45 translate x*0.3 }
> texture {T_Page2}
> }
>
> I get
> http://i21.photobucket.com/albums/b288/aardpast/Real%20pics/BookIso2Difference2.png
>
> Moving around the box doesn't get rid of the extra stuff. What am I doing
> wrong? POV version is 3.6 for Windows. The code is:
> #declare halfbook=
> union{
> #while (a<1)
> isosurface{
> function{
> eparam*ln(x+fparam+(numpag-1)*zdist*(1-a)) +
> bparam*(x+(numpag-1)*zdist*(1-a)) + cparam*pow(x+(numpag-1)*zdist*(1-a),2)
> + dparam - y}
> open
> max_gradient 2.5
> contained_by { box { 0.000001, <minimum + overh +
> numpag*(1-a)*extralp,3 ,minimum + overh> } }
> translate <zdist*numpag*(1-a)*0.25,-2*zdist*numpag*(1-a),0>
> }
> #declare a=a+1/numpag;
> #end
> }
>
>
> //difference{ // remove comments for pic #2
> object{halfbook }
> //box{<-0.5,-0.5,-2> <0.7,0.7,5> rotate z*45 translate x*0.3 }
> //texture {T_Page2}
> //}
>
>
>
>
Post a reply to this message
|
![](/i/fill.gif) |