![](/i/fill.gif) |
![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
[crossposted from povray.general]
On Thu, 29 Jul 1999 12:41:36 +0100, Andrew Cocker wrote:
>Apologies if this is not the best places to ask this question ( I'm only
>subscribed to .general and .binaries.images at the moment ).
povray.unofficial.patches is generally considered the best place for
these questions. I've set followups to there.
[...]
>Firstly, I modified Gilles Tran's Egg scene as follows. I wanted to use
>splines to change a couple of the values, but I always get an error. After
>this, I have to restart POV as it will not render any other isosurface.
Well, that clearly shouldn't happen. I'll have to look at that one.
>I initially tried using Colefax's AutoClck.mcr to change the same values,
>but that didn't work either. Is there a problem with using declared
>variables within an isosurface function? I *really* want to be able to
>animate isosurfaces.
Keep in mind that splines are not declared variables. They're closer
to macros than to variables. To use one, you'll probably have to
declare a variable first. Try this:
----------- cut here -------->8==========
#declare pos1=spline {
linear_spline
0, 0.04
1, 0.4
}
#declare pos2=spline {
linear_spline
0, 0.04
0.5, 0.4
1, 0.04
}
#declare vpos1 = 0+pos1(clock);
#declare vpos2 = 0+pos2(clock);
#declare Egg=isosurface {
function{ sqrt(x*x +y*y*0.5 +z*z) -5 + noise3d(x*1,y*1,z*1)*vpos1 +
noise3d(x*6,y*6,z*6)* vpos2 -0.125}
bounded_by{ box {-8,8}}
eval
threshold 0
method 2
scale 1
}
----------- cut here -------->8==========
>Also, where can I get more information on how they work, or more
>specifically to explain the mathematic gibberish that resides inside the
>function statement :-) ?
An isosurface is the surface formed when you put an infinitesimal dust
mote at each and every point where a function is equal to a specific
value. In the case of the egg, the function is that of an ellipsoid,
modified by a couple of noise functions at different scales. Any decent
3d geometry book or website should be able to help you with the equations.
>Secondly, I can't work out how to access the inbuilt isosurface functions
> that the doc says are in there ), like sphere, superellipsoid etc. Can
>anyone help?
The syntax is tricky and I messed up the documentation as well. The
proper syntax is like this:
function{ "sphere" <5> }
Both the quotes and the angle brackets are necessary.
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Ron,
Thanks for your reply . I am now able to animate isosurfaces.
Andy
Ron Parker <par### [at] fwi com> wrote in message
news:37a08b84@news.povray.org...
> [crossposted from povray.general]
>
> On Thu, 29 Jul 1999 12:41:36 +0100, Andrew Cocker wrote:
> >Apologies if this is not the best places to ask this question ( I'm only
> >subscribed to .general and .binaries.images at the moment ).
>
> povray.unofficial.patches is generally considered the best place for
> these questions. I've set followups to there.
>
> [...]
>
> >Firstly, I modified Gilles Tran's Egg scene as follows. I wanted to use
> >splines to change a couple of the values, but I always get an error.
After
> >this, I have to restart POV as it will not render any other isosurface.
>
> Well, that clearly shouldn't happen. I'll have to look at that one.
>
> >I initially tried using Colefax's AutoClck.mcr to change the same values,
> >but that didn't work either. Is there a problem with using declared
> >variables within an isosurface function? I *really* want to be able to
> >animate isosurfaces.
>
> Keep in mind that splines are not declared variables. They're closer
> to macros than to variables. To use one, you'll probably have to
> declare a variable first. Try this:
>
> ----------- cut here -------->8==========
> #declare pos1=spline {
> linear_spline
> 0, 0.04
> 1, 0.4
> }
>
> #declare pos2=spline {
> linear_spline
> 0, 0.04
> 0.5, 0.4
> 1, 0.04
> }
>
> #declare vpos1 = 0+pos1(clock);
> #declare vpos2 = 0+pos2(clock);
>
> #declare Egg=isosurface {
> function{ sqrt(x*x +y*y*0.5 +z*z) -5 + noise3d(x*1,y*1,z*1)*vpos1 +
> noise3d(x*6,y*6,z*6)* vpos2 -0.125}
> bounded_by{ box {-8,8}}
> eval
> threshold 0
> method 2
> scale 1
> }
> ----------- cut here -------->8==========
>
> >Also, where can I get more information on how they work, or more
> >specifically to explain the mathematic gibberish that resides inside the
> >function statement :-) ?
>
> An isosurface is the surface formed when you put an infinitesimal dust
> mote at each and every point where a function is equal to a specific
> value. In the case of the egg, the function is that of an ellipsoid,
> modified by a couple of noise functions at different scales. Any decent
> 3d geometry book or website should be able to help you with the equations.
>
> >Secondly, I can't work out how to access the inbuilt isosurface functions
> > that the doc says are in there ), like sphere, superellipsoid etc. Can
> >anyone help?
>
> The syntax is tricky and I messed up the documentation as well. The
> proper syntax is like this:
>
> function{ "sphere" <5> }
>
> Both the quotes and the angle brackets are necessary.
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |