|
![](/i/fill.gif) |
"dave vanhorn" <mic### [at] gmail com> wrote:
> I shouldn't need any extreme measures, it's a function that's defined as an
> iso.
> Thing is, if I set the accuracy any larger, I get an ugly horizontal defect
> in the middle.
>
> // The Heart Shape
> // DONT scale/translate/rotate here!
> //
>
>
> //The function
> #declare Heart_Function = function (x, y, z) { pow ( ( 2 * pow ( z, 2 )
> + pow ( x, 2 ) + pow ( y,
> 2 ) -1 ), 3 )
> - ( 0.1 * pow ( z, 2 )
> + pow (x, 2 ) ) * pow ( y, 3 )
> }
> //The heart shape and bounding box
> #declare Heart = isosurface { function { Heart_Function (x, y, z) }
> accuracy 0.000025 // Less than this shows a cutline
> across the middle.
>
> max_trace 1 // 1 if solid
> //max_trace 3 // 3 for simple glass
> //all_intersections // Or use this for max quality in
> a transparent
>
> max_gradient 101 // Pov reports 100 used, and we
> want to be > that
>
> //Bump the result by 0.001 before entering here.
> contained_by { box { < 1.046, 1.20, 0.721 >, -<
> 1.046, 0.900, 0.721 > }}
> }
>
> //finally, the heart as an object
> #declare MyHeart =
> object { Heart material { M_Ruby_Glass }
>
> #ifndef(NoPhotons)
> photons { //collect off
> refraction on
> reflection on
> target 1.0
> }
> #end
>
> }
I wouldn't know, but you can try changing your function. There's another
heart shaped function here, that reportedly renders very quickly:
http://www.econym.demon.co.uk/isotut/real.htm (Yet Another Heart)
Post a reply to this message
|
![](/i/fill.gif) |