

On 5/2/20 9:27 AM, Bald Eagle wrote:
> Hopefully this is to spec.
>
> The green circles are torus{} objects to show that the cross section is indeed
> exactly circular.
>
> Not my best work, and it's only a parametric, not an implicit equation, but
> perhaps I can "implicitize" it.
>
> It was the z part that needed some figuring.
>
> Hope you like. :)
>
It is a cool shape.
I couldn't resist trying it though I have almost no experience with
parametric surfaces... First thing I learned is the parametric max
gradient doesn't seem to be much related to the isosurface one by value
at least...
Using:
parametric {
function { (_a + _R * cos(u)) * _r * cos(v) }
function { (_b + _R * cos(u)) * _r * sin(v) }
function { _R * _r * sin(u) }
<0,pi>, <2*pi,pi>
contained_by { sphere{0, 1.5} }
max_gradient 0.005
accuracy 0.0005
precompute 10 x,y,z
pigment {rgb 1}
}
I started with max_gradient 1.0 as I might an isosurface, but ended up
as above.
// povr2 Parametric_EllipticalTorus.pov +p +w800 +h600 +a0.3 +am2 +r3
// 21,348,576,112 maxg 1.000, accuracy 0.0001. 3058.277s
// 5,309,618,895 maxg 0.500, accuracy 0.0005. 754.430s
// 1,164,854,065 maxg 0.100, accuracy 0.0005. 165.657s
// 744,145,888 maxg 0.025, accuracy 0.0005. 106.139s
// 683,049,468 maxg 0.005, accuracy 0.0005. 97.377s (24.7s)
25s elapsed pretty slow but much faster than most any parametric I have
ever gotten from anyone and just run. What were you using for settings
and seeing for run times?
Aside: My f_eblob() function often ends up with max gradients well below
1.0 too. There I know I'm doing some stuff that takes out some of the
exponential behavior. It makes the gradient small but more linear.
Bill P.
Post a reply to this message
Attachments:
Download 'parametric_ellipticaltorus.png' (50 KB)
Preview of image 'parametric_ellipticaltorus.png'

