POV-Ray : Newsgroups : povray.general : Bending isosurface functions Server Time
15 Nov 2024 23:23:06 EST (-0500)
  Bending isosurface functions (Message 1 to 8 of 8)  
From: nomail
Subject: Bending isosurface functions
Date: 26 May 2004 09:45:00
Message: <web.40b49ec5ed899368e1a5e5d0@news.povray.org>
I tried many ways to bend a GSG object. The only possibility was Chris
Colefax's object bender. But the you have to set the quality that high,
that rendering takes too much time for an animation.
Now I'm looking for a mathematical way to bend an isosurface function. As
example you can made a torus with a cylinder. That would be stupid, but it
is an example.

When you want to translate an function 7 units along the x-axis, you have to
write function(x-7,y,z), not function(x+7,y,z). Thats the point: I have a
transformation to bend an object, but it is the wrong way:
xnew = cos(x/radius)*(radius+z)
znew = sin(x/radius)*(radius+z)
Solving to x and z gives a stupid result, becaus sin and cos have infinite
solutions.

Do you now any other ways to bend an Isosurface object?


Post a reply to this message

From: ABX
Subject: Re: Bending isosurface functions
Date: 26 May 2004 09:56:32
Message: <sa89b0htch01l4rt5m39av8sd3vcc56p6o@4ax.com>
On Wed, 26 May 2004 09:42:29 EDT, "" <nomail@nomail> wrote:
> Do you now any other ways to bend an Isosurface object?

This animation bends isosurface.
http://news.povray.org/povray.binaries.animations/attachment/%3C4d9jevcec7l8meqapa1f939dllrf23mk88%404ax.com%3E/isotorspline.mpg
Basically it uses combination of IC_Shaped_Arc with IC_Torus_Spline
http://www.tu-bs.de/~y0013390/pov/ic/docu02.html#Shaped_Arc
http://www.tu-bs.de/~y0013390/pov/ic/docu02.html#Torus_Spline

ABX


Post a reply to this message

From: Tor Olav Kristensen
Subject: Re: Bending isosurface functions
Date: 26 May 2004 11:15:36
Message: <40b4b498$1@news.povray.org>
nomail@nomail wrote:
> I tried many ways to bend a GSG object. The only possibility was Chris
> Colefax's object bender. But the you have to set the quality that high,
> that rendering takes too much time for an animation.
> Now I'm looking for a mathematical way to bend an isosurface function. As
> example you can made a torus with a cylinder. That would be stupid, but it
> is an example.
> 
> When you want to translate an function 7 units along the x-axis, you have to
> write function(x-7,y,z), not function(x+7,y,z). Thats the point: I have a
> transformation to bend an object, but it is the wrong way:
> xnew = cos(x/radius)*(radius+z)
> znew = sin(x/radius)*(radius+z)
> Solving to x and z gives a stupid result, becaus sin and cos have infinite
> solutions.
> 
> Do you now any other ways to bend an Isosurface object?

I have successfully "bent" and deformed isosurfaces with NURBS.
(With one trivariate function for each of the x, y, and z axis.)

- But it was *really* painful to wait for the results. Maybe we
will have powerful enough processors in some years...

=)

Tor Olav


Post a reply to this message

From: nomail
Subject: Re: Bending isosurface functions
Date: 26 May 2004 15:00:01
Message: <web.40b4e8801e85861e77fcd8f50@news.povray.org>
Thanks for the link and the idea.

Bending a cross section (defined by a spline) along a spline is exactly what
I need , but the render is too slow. I can't use it for my animation becaus
it takes too much of my time, not the computer's.

I see, looking for such a thing, fast AND good, is nearly impossible.
But I decided for the fast rendering, so I'm going to use the object bender.


Post a reply to this message

From: nomail
Subject: Re: Bending isosurface functions
Date: 26 May 2004 17:00:00
Message: <web.40b5045a1e85861e77fcd8f50@news.povray.org>
With a little bit more thinking, I could find the right operation for
bending an object (along the x-axis), so that a cylinder is bent to a
torus:

xnew = atan(z/x)*radius
ynew = y
znew = sqrt(x^2+z^2)-radius

--> function(atan(z/x)*radius, y, sqrt(x^2+z^2)-radius)

The rendering speed is ok, so I can use it.


Post a reply to this message

From: Mike Williams
Subject: Re: Bending isosurface functions
Date: 27 May 2004 02:10:40
Message: <WfWW4AAQXYtAFwx4@econym.demon.co.uk>
Wasn't it  who wrote:
>Thanks for the link and the idea.
>
>Bending a cross section (defined by a spline) along a spline is exactly what
>I need

Have you looked at these pages?

http://www.econym.demon.co.uk/isotut/more.htm
http://www.econym.demon.co.uk/isotut/splines.htm


-- 
Mike Williams
Gentleman of Leisure


Post a reply to this message

From: Mike Williams
Subject: Re: Bending isosurface functions
Date: 27 May 2004 02:14:31
Message: <ZfsVYKA4aYtAFwRO@econym.demon.co.uk>
Wasn't it  who wrote:
>With a little bit more thinking, I could find the right operation for
>bending an object (along the x-axis), so that a cylinder is bent to a
>torus:
>
>xnew = atan(z/x)*radius
>ynew = y
>znew = sqrt(x^2+z^2)-radius
>
>--> function(atan(z/x)*radius, y, sqrt(x^2+z^2)-radius)
>
>The rendering speed is ok, so I can use it.
>

I don't think you need the atan(z/x)*radius, you can just use

function { F(sqrt(x*x+z*z)-r1, y, z) }

See <http://www.econym.demon.co.uk/isotut/substitute.htm#sor>


-- 
Mike Williams
Gentleman of Leisure


Post a reply to this message

From: nomail
Subject: Re: Bending isosurface functions
Date: 27 May 2004 11:40:00
Message: <web.40b60b381e85861efb0f997b0@news.povray.org>
> I don't think you need the atan(z/x)*radius, you can just use
>
> function { F(sqrt(x*x+z*z)-r1, y, z) }
>
> See <http://www.econym.demon.co.uk/isotut/substitute.htm#sor>
>
>
> --
> Mike Williams
> Gentleman of Leisure

I tried it without replacing x (in my case) and it worked. --> less render
time. Thanks very much

I also rendered the bended (with splines) 2D-star, but it was very slow.

Do you know anything about a bug when you are using macros with more than 7
parameters? I have big trouble with this.


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.