POV-Ray : Newsgroups : povray.binaries.images : A Trivariate NURBS function (100KB) Server Time: 19 Feb 2019 23:24:48 GMT
 A Trivariate NURBS function (100KB) (Message 1 to 9 of 9)
 From: Tor Olav Kristensen Subject: A Trivariate NURBS function (100KB) Date: 18 Apr 2002 21:36:32 Message: <3CBDEADA.E12E0676@hotmail.com>
```- is used to place the spheres in this image.

A NURBS surface is a made with a bivariate function.
I.e. the value of the functions varies according
to 2 variables; e.g.  u and v

(A curve is a univariate function. It's value
varies along with a single variable; e.g.  t)

The value of a trivariate function varies along with
3 variables; e.g.   u, v and w   or   x, y and z

So a trivariate function can be used to build solid
shapes in 3D (that has a volume; like we do with
isosurfaces).

The image enclosed shows a quick try at doing this
with a trivariate NURBS function that controls
the positions of spheres in a 3D grid. (The tone
range in the image is adjusted after rendering.)

But trivariates can also be used to control other
things, like e.g. density, pigments, light,
directions of movement/acceleration, refraction
index, temperature, humidity, vector fields

Later I'll try to find time to show how trivariate
B-splines can be used to do a kind of 3D morphing

I also hope that POV-Ray will render fast enough
to calculate some interesting isosurfaces made
with (simple) trivariate B-splines.

Higher dimensional multivariate B-spline functions
are interesting too, but I fear that the slow
speed of POV's parsing will prevent us from
exploring the possibilities that they provide.

Tor Olav
```

Attachments:

Preview of image 'trivariates05_.jpg'

 From: Shay Subject: Re: A Trivariate NURBS function (100KB) Date: 18 Apr 2002 21:54:24 Message: <3cbf4090\$1@news.povray.org>
```Tor Olav Kristensen <tor### [at] hotmailcom> wrote in message

As usual, your image inspires me to do a little reading and research. If
Pov's parsing speed is too slow for multi-dimensional functions, would it be
difficult to parse these functions in another language and return mesh
points?

Also, it appears that your function has produced some *almost* redundant
spheres. I can see rows that look as if they disappear into the "surface" of
the shape. Is this truly the case?

I got a good (perhaps) idea for a new surface today at work, hopefully I
will have something to post tomorrow if I can get a chance to do some Poving
tonight.

-Shay
```
 From: Tor Olav Kristensen Subject: Re: A Trivariate NURBS function (100KB) Date: 18 Apr 2002 22:46:58 Message: <3CBDFB73.4B779E9D@hotmail.com>
```Shay wrote:
>
> Tor Olav Kristensen <tor### [at] hotmailcom> wrote in message
>
> As usual, your image inspires me to do a little reading and research.

I'm happy to hear that my image inspires you !

> If Pov's parsing speed is too slow for multi-dimensional functions,
> would it be difficult to parse these functions in another language
> and return mesh points?

Yes, I think that this would be good way to
explore such functions.

But I think that much depends upon the
programming language you use.

POV-Ray's scripting language let you build
arbitrary functions "on the fly" and then
use them right afterwards. (So in this context
the POV-language is quite powerful.)

In many languages you'll have to make the
function building mechanisms yourself, and
I would expect that to be a lot of work.

POV-Ray is made with C. But I don't know how
the function building is done within POV-Ray
at run time.

Hmmm... Maybe POV-Ray has a built in C-
compiler ?  Or maybe someone has made a
library for an advanced virtual stack based
calculator ?  Somebody please enlighten me !

> Also, it appears that your function has produced some *almost* redundant
> spheres. I can see rows that look as if they disappear into the "surface" of
> the shape. Is this truly the case?

The "solid" shape shown is really a 3D grid
of 80x80x80 spheres. Most of the visible ones
are at the surface. But it might be that some
of the interior ones are "pulled" to the
outside of the shape.

The control points that controls this "shape"
lies in a kind of cube grid.

Each of them pulls a volumetric region the
shape towards them. Since I have randomly
displaced each of the control points quite a
distance from its "original" location in the
grid, some of the surface of the shape will
"fold back on itself". (I think that this is
not possible with isosurfaces.) So some of
the spheres will seem to be located in nearly
the same position.

I think I'll have to make a little macro to
show a 3D cylinder-grid of the interior of
my shape.

> I got a good (perhaps) idea for a new surface today at work, hopefully I
> will have something to post tomorrow if I can get a chance to do some Poving
> tonight.

Happy rendering then !
- And please show us the result if it turns out nice !

Tor Olav

P.S.:
I have read that IRIT can handle trivariate
NURBS functions. It is a (scriptable) solid
modeller. And it is free of charge for non-
commercial use.

http://www.cs.technion.ac.il/~irit/
```
 From: Sebastian H  Subject: Re: A Trivariate NURBS function (100KB) Date: 19 Apr 2002 07:56:02 Message: <3CBFCE0D.9080703@web.de>
```Wow, nice work.
The great thing in Pov is that it allows you to *play* with math!

Sebastian H.
```
 From: Sam Van Oort Subject: Re: A Trivariate NURBS function (100KB) Date: 19 Apr 2002 18:38:16 Message: <3cc06418\$1@news.povray.org>
```Two words: HOLY and COW.  How long was the parse time?
"Tor Olav Kristensen" <tor### [at] hotmailcom> wrote in message
>
> - is used to place the spheres in this image.
>
> A NURBS surface is a made with a bivariate function.
> I.e. the value of the functions varies according
> to 2 variables; e.g.  u and v
>
> (A curve is a univariate function. It's value
> varies along with a single variable; e.g.  t)
>
> The value of a trivariate function varies along with
> 3 variables; e.g.   u, v and w   or   x, y and z
>
> So a trivariate function can be used to build solid
> shapes in 3D (that has a volume; like we do with
> isosurfaces).
>
> The image enclosed shows a quick try at doing this
> with a trivariate NURBS function that controls
> the positions of spheres in a 3D grid. (The tone
> range in the image is adjusted after rendering.)
>
> But trivariates can also be used to control other
> things, like e.g. density, pigments, light,
> directions of movement/acceleration, refraction
> index, temperature, humidity, vector fields
>
> Later I'll try to find time to show how trivariate
> B-splines can be used to do a kind of 3D morphing
> of shapes made from meshes.
>
> I also hope that POV-Ray will render fast enough
> to calculate some interesting isosurfaces made
> with (simple) trivariate B-splines.
>
> Higher dimensional multivariate B-spline functions
> are interesting too, but I fear that the slow
> speed of POV's parsing will prevent us from
> exploring the possibilities that they provide.
>
>
> Tor Olav

----------------------------------------------------------------------------
----
```
 From: Tor Olav Kristensen Subject: Re: A Trivariate NURBS function (100KB) Date: 20 Apr 2002 11:40:46 Message: <3CC1537D.E6CB4FE5@hotmail.com>
```"Sebastian H." wrote:
>
> Wow, nice work.

Thank you Sebastian.

> The great thing in Pov is that it allows you to *play* with math!

Yes, that's true.

My interest for math has grown steadily during
the 2.5(?) years I've been using POV-Ray.

Tor Olav
```
 From: Tor Olav Kristensen Subject: Re: A Trivariate NURBS function (100KB) Date: 20 Apr 2002 11:41:16 Message: <3CC1539B.6A3A2A38@hotmail.com>
```Sam Van Oort wrote:
>
> Two words: HOLY and COW.  How long was the parse time?

Thank you !

The parsing time was more than 1 hour on a 1GHz PIII.

Tor Olav
```
 From: Hugo Subject: Re: A Trivariate NURBS function (100KB) Date: 23 Apr 2002 07:43:39 Message: <3cc510ab\$1@news.povray.org>
```> The parsing time was more than 1 hour on a 1GHz PIII.

I guess you're kidding.....
You mean more than 1 minute.
Yes, of course.

Regards
Hugo
```
 From: Tor Olav Kristensen Subject: Re: A Trivariate NURBS function (100KB) Date: 24 Apr 2002 00:27:50 Message: <3CC5FBCF.B52E81BD@hotmail.com>
```Hugo wrote:
>
> > The parsing time was more than 1 hour on a 1GHz PIII.
>
> I guess you're kidding.....
> You mean more than 1 minute.

Hugo, I'm actually quite sure that it took
more than 1 hour. (But not completely sure ;)

> Yes, of course.

Also see my answer to Shay in this post:

http://news.povray.org/povray.binaries.images/23853/167835/
http://news.povray.org/3CC5DF3D.EB8FFE17%40hotmail.com

Tor Olav
```