POV-Ray : Newsgroups : povray.advanced-users : friendly splines Server Time
2 Nov 2024 15:23:16 EDT (-0400)
  friendly splines (Message 1 to 4 of 4)  
From: Rainer Mager
Subject: friendly splines
Date: 16 Aug 1999 21:00:47
Message: <37b8b43f@news.povray.org>
Hi all,

    I was wondering if anyone has any "friendly" spline INCs for POV. What I
mean is this. I'm looking for a spline generator that does things a bit
differently from the current ones (at least the current ones that I know
about).
    The most important thing that I need is a way to travel along a spline
in steady increments. With the current splines if you create 1 segment that
is relatively short and then one segment that is relatively long, when you
travel along the short one you will be moving slowly and when you travel
along the long one you will be moving quickly. I need to be able to travel
at a user defined pace at any point along the spline. YES, I realize this
can be done with the current splines but it seems to be pretty difficult
calculations.
    Second, I'd like to be able to define a spline via end-points only and
then some sort of global "tightness" value. That way I just pick a bunch of
points I want the spline to pass though and a tightness to determine how
floppy or tight the curves are.


    So, does anyone have anything like this? Any ideas/recommendations?


Thanks,

--Rainer


Post a reply to this message

From: Chris Colefax
Subject: Re: friendly splines
Date: 16 Aug 1999 23:25:43
Message: <37b8d637@news.povray.org>
Rainer Mager <nos### [at] golcom> wrote:
>     I was wondering if anyone has any "friendly" spline INCs for POV. What
I
> mean is this. I'm looking for a spline generator that does things a bit
> differently from the current ones (at least the current ones that I know
> about).
>     The most important thing that I need is a way to travel along a spline
> in steady increments. With the current splines if you create 1 segment
that
> is relatively short and then one segment that is relatively long, when you
> travel along the short one you will be moving slowly and when you travel
> along the long one you will be moving quickly. I need to be able to travel
> at a user defined pace at any point along the spline. YES, I realize this
> can be done with the current splines but it seems to be pretty difficult
> calculations.
>     Second, I'd like to be able to define a spline via end-points only and
> then some sort of global "tightness" value. That way I just pick a bunch
of
> points I want the spline to pass though and a tightness to determine how
> floppy or tight the curves are.

I guess my Spline Generator is one of the unfriendly include files
mentioned, and I would be the first to agree that it is inadequate in so
many, many ways (although, with perhaps a touch of nostalgia, I'm quite
happy with the way I overcame POV-Ray 3.0's lack of arrays and macros....)

After much investigation into splines, I've now created a set of macros that
I think covers most bases - at the simplest level, you can specify a list of
points, and have these points interpolated smoothly given a value in the
range 0 (first point) to 1 (last point).  The first change, though, is that
each point is assigned a time value as well.  These times can be specified
manually; if not, each point is given a time value based on the length from
the previous point (relative to the length of the entire spline), so that if
you have two points quite close together, and a third point four times as
far away, you'll reach the second point at 0.2 (rather than at 0.5).

Secondly, you can optionally specify values for the spline tension (the
looseness/tightness you talked about), spline bias, and spline continuity:
in effect, you can create Catmull-Rom splines, Cardinal splines, Tau
splines, and Kochanek-Bartels splines (the first three being subsets of the
last).  Alternatively, you can create Bezier splines like the current Spline
include file, where only every third point is actually on the spline, or
Hermite splines (giving a list of control points and velocities/tangents to
interpolate).

With these two changes, though, the actual speed of the spline remains
dependent on the curvature (ie. the spline tends to slows down around tight
curves).  This is not wholly undesirable, but I've overcome it (for when
necessary) by first sampling the spline distance with respect to time, so
that you can then inversely evaluate the spline position, tangent, and
acceleration, given a distance along the spline (ie. you can move at a
constant speed along the length of the spline, or modify this linear
relationship so that you fully control the acceleration, etc).

As for actually using the splines - I've created macros that will
automatically animate an object (or camera) along the spline, changing its
pitch, yaw, and roll.  I am working on adding macros that will allow you to
add barrel rolls, waves, shakes, bounces, spins, and spirals, or various
combinations of all, to the movement, as desired.  I'm also working on
macros to create objects along the splines, ranging from the usual
cylinders, spheres, cones, and blobs, to linking various objects along a
spline, bending objects along a spline, extruding prisms along a spline,
etc.

Currently I am fine-tuning the sampling behaviour and syntax (although, if I
could permit myself another moment of immodesty, I'm quite pleased with the
way I've overcome POV-Ray's lack of support for arbitrary numbers of macro
options!).  Hopefully, then, the final result shall be announced some time
soon...


Post a reply to this message

From: Rainer Mager
Subject: Re: friendly splines
Date: 17 Aug 1999 02:19:20
Message: <37b8fee8@news.povray.org>
Oooh, oooh, drool, drool!! Can have 1, please, please? I'll help you
test...I'll lick you boots...I'll...err, well, I guess I won't lick you
boots. Anyway, is there anything I can do to help?


Thanks,

--Rainer


Chris Colefax <cco### [at] geocitiescom> wrote in message
news:37b8d637@news.povray.org...
> After much investigation into splines, I've now created a set of macros
that
> I think covers most bases - at the simplest level, you can specify a list
of
.
.
.


Post a reply to this message

From: Nils Steinkamp
Subject: Re: friendly splines
Date: 17 Aug 1999 08:06:44
Message: <37b95054@news.povray.org>
Hi there !

Take a look at http://macroscope.twysted.net/ in macros for LSPLINE3. I took
that to make animations with rolling objects for flights with some little
changes. I I figured out how to do so with the camera my version will be
posted on my page, but the days don't have so much hours to render full
animations for viewing if it rotates right.

The upper link now also has .INC files.

Nils

http://www.steini.de


Post a reply to this message

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