|
![](/i/fill.gif) |
The function you're using has the bad property that its value gets bigger
really fast towards the edge of the contained_by box, but stays close to
zero almost everywhere else (This is because it uses so many pow() calls).
The quick rise in values near the edge necessitates a large max_gradient,
but since the value is so close to zero in most of the area around the
surface, POV-Ray thinks it's near the surface and takes only tiny steps
forward, reevaluating the function each time.
In other words, you're getting the problem you would get if you used a
max_gradient way higher than you needed, but you can't just lower the
max_gradient because there are small parts of the function that actually
*have* that gradient.
The solution is usually to change the function so that it increases at a
steady pace as you move away from the surface (instead of first slow and
then fast). I see that may not be an option for you as the function is
fairly complicated.
It may help to change your contained_by shape to be a sphere, and pack it as
tightly as you possibly can around the heart. This will cut out some of the
parts that have a high gradient and allow you to lower max_gradient.
- Slime
[ http://www.slimeland.com/ ]
Post a reply to this message
|
![](/i/fill.gif) |