[Bf-committers] An easy to use damped spline

Ronan Ducluzeau zeauron at gmail.com
Mon Dec 29 14:41:21 CET 2014


I just want to remind that currently nurbs weights are not working in
master since 2.5.

If someone is interested into improving Blender's nurbs; there is a lot to
do, anyways.

2014-12-29 1:47 GMT+01:00 Campbell Barton <ideasman42 at gmail.com>:

> Heres a patch on Blender,
> Removed the restriction of power-of-2 curve resolution.
> https://developer.blender.org/P183
>
> However I don't see any significant advantage this offers over
> existing nurbs calculation method, even though its quite efficient, it
> would need to be extended to support different orders (currently
> hard-coded to order-4), cyclic curves, nurbs weights etc...
>
> Just posting the patch for reference if anyone likes to check on the code.
>
> On Mon, Dec 29, 2014 at 8:03 AM, Campbell Barton <ideasman42 at gmail.com>
> wrote:
> > Its available here:
> > http://download.blender.org/ftp/ton/dspline.pdf
> >
> > On Mon, Dec 29, 2014 at 7:28 AM, joe <joeedh at gmail.com> wrote:
> >> Do you have a link to a paper?
> >> On Sep 28, 2014 10:45 AM, "Fred" <f.harthoorn at ziggo.nl> wrote:
> >>
> >>> Hi Campbell Barton,
> >>>
> >>> The amount of interpolation dots is 2^i, at the start of the demo  i =
> >>> 4    (16 dots)
> >>> if you change i = 7 (the limit in the demo) than there are 128
> >>> interpolation dots.
> >>>
> >>> if I had set the limit in the demo to 10 then 1024 interpolation dots
> >>> was possible.
> >>>
> >>> If the spline is used in a 3 dimensional space,
> >>> to compute an interpolated dot position takes:  dim * 10  clock cycles
> =
> >>> 30 clock cycles.
> >>> I hope that it is fast enough.
> >>>
> >>> If you like to have a curve to the last plotted dot you have to put two
> >>> dots on each other at the end.
> >>> You will see that it is symmetrical again.
> >>>
> >>> Please change the number to 7 in the demo and you see a curved line in
> >>> stead of dots.
> >>>
> >>> Much more is possible with this spline because the first, second and
> >>> third derivative (parameterized ) of the curve
> >>> is available in real time.
> >>>
> >>> I think that much more can be invented with this spline technique.
> >>> I think that with some research tangent handles can be constructed as
> >>> well (if you like them?).
> >>> What I did in the demo was the most simple way of using it.
> >>>
> >>> The essence is: a 3th degree curve in two (x,y) or more directions is
> >>> differentiated three times, and then again integrated 3 times.
> >>> With floating point this is impossible , because it is not exact, the
> >>> curve runs away.
> >>> But with integer computing it is exact and the spline exact a 3th
> degree
> >>> curve.
> >>>
> >>> It can also be used in ten or more directions, but more then 3
> >>> dimensions (x,y,z) is not  practical.
> >>>
> >>> Fred.
> >>> --------------------------------------
> >>> Fred schreef op 28-9-2014 om 18:30:
> >>> > That is in the demo the case, because I programmed that  the first
> plot
> >>> > point is actually two points.
> >>> > the spline uses 4 points p0, p1, p2, p3  and the interpolation is
> >>> > between p1 and p2.
> >>> >
> >>> > Campbell Barton schreef op 28-9-2014 om 17:42:
> >>> >> Checked the test application, and not sure if this is intended but a
> >>> >> simple triangle has uneven distribution.
> >>> >>
> >>> >> see: http://www.graphicall.org/ftp/ideasman42/fred_curve.png
> >>> >>
> >>> >> On Mon, Sep 29, 2014 at 1:32 AM, Dan McGrath <
> danmcgrath.ca at gmail.com>
> >>> wrote:
> >>> >>> Cool, got them. Will take a look later. o/
> >>> >>>
> >>> >>> Dan
> >>> >>>
> >>> >>> On Sun, Sep 28, 2014 at 11:28 AM, Fred <f.harthoorn at ziggo.nl>
> wrote:
> >>> >>>
> >>> >>>> Ok, It is uploaded to the directory incoming
> >>> >>>>
> >>> >>>> Dan schreef op 28-9-2014 om 17:15:
> >>> >>>>> You could always upload it to our anonymous ftp via
> >>> download.blender.org
> >>> >>>>> (or ftp.blender.org) and put it into the incoming directory (use
> >>> passive
> >>> >>>>> mode). From there was can fetch the files via
> >>> >>>>> http://download.blender.org/ftp/incoming/
> >>> >>>>>
> >>> >>>>> Dan
> >>> >>>>>
> >>> >>>>> On Sun, Sep 28, 2014 at 11:05 AM, Fred <f.harthoorn at ziggo.nl>
> wrote:
> >>> >>>>>
> >>> >>>>>> Campbell Barton
> >>> >>>>>>
> >>> >>>>>> I have tried to send it but it is rejected. So send me an
> addres for
> >>> >>>>>> upload.
> >>> >>>>>>
> >>> >>>>>> fred
> >>> >>>>>>
> >>> >>>>>>
> >>> >>>>>> Campbell Barton schreef op 28-9-2014 om 16:51:
> >>> >>>>>>> Could the project files be posted to a public URL?, Id like to
> be
> >>> able
> >>> >>>>>>> to look into this. but probably wont have time over the coming
> >>> weeks.
> >>> >>>>>>>
> >>> >>>>>>> The main source file compiles for me with minor edits on
> >>> >>>>>>> Linux/FreePascal, but the demo relies on `Window` unit, which I
> >>> assume
> >>> >>>>>>> is provided by delphi/windows.
> >>> >>>>>>>
> >>> >>>>>>> On Mon, Sep 29, 2014 at 12:36 AM, Dan McGrath <
> >>> danmcgrath.ca at gmail.com
> >>> >>>>>> wrote:
> >>> >>>>>>>> Hey,
> >>> >>>>>>>>
> >>> >>>>>>>> Just save out the delphi project and zip it up and email it
> to me
> >>> >>>> direct
> >>> >>>>>>>> via email I guess (the mailing list wouldn't allow such a
> large
> >>> >>>>>>>> attachement). I was attempting to compile it on linux, so the
> >>> compiled
> >>> >>>>>>>> dll's wouldn't be of much use to me unfortunately.
> >>> >>>>>>>>
> >>> >>>>>>>> Thanks!
> >>> >>>>>>>>
> >>> >>>>>>>>
> >>> >>>>>>>> Dan
> >>> >>>>>>>>
> >>> >>>>>>>> On Sun, Sep 28, 2014 at 10:06 AM, Fred <f.harthoorn at ziggo.nl>
> >>> wrote:
> >>> >>>>>>>>
> >>> >>>>>>>>> Hi Dan,
> >>> >>>>>>>>>
> >>> >>>>>>>>> Of course I can  send you the project.
> >>> >>>>>>>>> I have made two versions:
> >>> >>>>>>>>> 1) The spline is embedded in de demo:
> >>> >>>>>>>>> 2) The spline is an external .dll, de demo calls PSpline.dll
> >>> >>>>>>>>>
> >>> >>>>>>>>> Which one do you prefer?
> >>> >>>>>>>>>
> >>> >>>>>>>>> Fred.
> >>> >>>>>>>>> ----------------
> >>> >>>>>>>>>
> >>> >>>>>>>>>
> >>> >>>>>>>>>
> >>> >>>>>>>>> Dan McGrath schreef op 28-9-2014 om 15:42:
> >>> >>>>>>>>>> So is/was Turbo Pascal (limited in features; eg: objects
> but no
> >>> >>>>>> classes)
> >>> >>>>>>>>>> and FreePascal+Lazarus (supports almost everything Delphi
> does
> >>> >>>> still?
> >>> >>>>>>>>>> http://wiki.freepascal.org/Lazarus_For_Delphi_Users).
> >>> >>>>>>>>>>
> >>> >>>>>>>>>> Anyway, just thought it was neat to see code in pascal (an
> >>> elegant
> >>> >>>>>>>>>> language, imho). Curious though, why not just give the whole
> >>> delphi
> >>> >>>>>>>>> project
> >>> >>>>>>>>>> and resource files so your forms can be built etc.? The code
> >>> seems
> >>> >>>> to
> >>> >>>>>>>>>> compile with some modifications here, but without the {$R
> *.DFM}
> >>> >>>>>> (*.lfm
> >>> >>>>>>>>> in
> >>> >>>>>>>>>> fp), one would have to manually rebuild the form :(
> >>> >>>>>>>>>>
> >>> >>>>>>>>>>
> >>> >>>>>>>>>>
> >>> >>>>>>>>>> On Sun, Sep 28, 2014 at 8:55 AM, Fred <f.harthoorn at ziggo.nl
> >
> >>> wrote:
> >>> >>>>>>>>>>
> >>> >>>>>>>>>>> It's true, but Delphi is object oriented.
> >>> >>>>>>>>>>>
> >>> >>>>>>>>>>> Dan McGrath schreef op 28-9-2014 om 14:53:
> >>> >>>>>>>>>>>> Standard Pascal, Turbo Pascal, Freepascal, Delphi; same
> >>> language,
> >>> >>>>>>>>>>> different
> >>> >>>>>>>>>>>> dialect :)
> >>> >>>>>>>>>>>>
> >>> >>>>>>>>>>>> On Sun, Sep 28, 2014 at 8:43 AM, Fred <
> f.harthoorn at ziggo.nl>
> >>> >>>> wrote:
> >>> >>>>>>>>>>>>> Actually it is Delphi
> >>> >>>>>>>>>>>>>
> >>> >>>>>>>>>>>>>
> >>> >>>>>>>>>>>>> Dan McGrath schreef op 28-9-2014 om 14:35:
> >>> >>>>>>>>>>>>>> Pascal, with inline assembler to boot! \o/ :)
> >>> >>>>>>>>>>>>>>
> >>> >>>>>>>>>>>>>> On Sun, Sep 28, 2014 at 6:46 AM, Ton Roosendaal <
> >>> >>>> ton at blender.org>
> >>> >>>>>>>>>>> wrote:
> >>> >>>>>>>>>>>>>>> Hi,
> >>> >>>>>>>>>>>>>>>
> >>> >>>>>>>>>>>>>>> Fred told me he's not interested in getting involved,
> or
> >>> >>>> setting
> >>> >>>>>> up
> >>> >>>>>>>>> a
> >>> >>>>>>>>>>>>>>> project for his work.
> >>> >>>>>>>>>>>>>>> He's retired now and just thought we might be
> interested
> >>> in a
> >>> >>>>>>>>> research
> >>> >>>>>>>>>>>>>>> topic he did.
> >>> >>>>>>>>>>>>>>>
> >>> >>>>>>>>>>>>>>> I've copied files he sent to me here;
> >>> >>>>>>>>>>>>>>> http://download.blender.org/ftp/ton/
> >>> >>>>>>>>>>>>>>>
> >>> >>>>>>>>>>>>>>> It's a Dutch pdf and two pascal files.
> >>> >>>>>>>>>>>>>>>
> >>> >>>>>>>>>>>>>>> -Ton-
> >>> >>>>>>>>>>>>>>>
> >>> >>>>>>>>>>>>>>>
> --------------------------------------------------------
> >>> >>>>>>>>>>>>>>> Ton Roosendaal  -  ton at blender.org   -
> www.blender.org
> >>> >>>>>>>>>>>>>>> Chairman Blender Foundation - Producer Blender
> Institute
> >>> >>>>>>>>>>>>>>> Entrepotdok 57A  -  1018AD Amsterdam  -  The
> Netherlands
> >>> >>>>>>>>>>>>>>>
> >>> >>>>>>>>>>>>>>>
> >>> >>>>>>>>>>>>>>>
> >>> >>>>>>>>>>>>>>> On 28 Sep, 2014, at 9:28, Aditia A. Pratama wrote:
> >>> >>>>>>>>>>>>>>>
> >>> >>>>>>>>>>>>>>>> HI Fred,
> >>> >>>>>>>>>>>>>>>>
> >>> >>>>>>>>>>>>>>>> Can you record a screencast/video demo to show how it
> >>> works?
> >>> >>>>>>>>>>>>>>>>
> >>> >>>>>>>>>>>>>>>> Regards,
> >>> >>>>>>>>>>>>>>>> On Sep 28, 2014 2:14 PM, "Fred" <f.harthoorn at ziggo.nl
> >
> >>> wrote:
> >>> >>>>>>>>>>>>>>>>
> >>> >>>>>>>>>>>>>>>>> I forgot to say, I have a two dimensional demo but
> it is
> >>> >>>>>> working
> >>> >>>>>>>>> on
> >>> >>>>>>>>>>> a
> >>> >>>>>>>>>>>>>>>>> windows computer.
> >>> >>>>>>>>>>>>>>>>>
> >>> >>>>>>>>>>>>>>>>> Jacob Merrill schreef op 28-9-2014 om 02:07:
> >>> >>>>>>>>>>>>>>>>>> would this make it so you can record F-curves over
> time
> >>> >>>>>> better?
> >>> >>>>>>>>>>>>>>>>>> right now recording in the engine gets slower the
> >>> longer it
> >>> >>>>>> runs,
> >>> >>>>>>>>>>>>>>>>>> _______________________________________________
> >>> >>>>>>>>>>>>>>>>>> Bf-committers mailing list
> >>> >>>>>>>>>>>>>>>>>> Bf-committers at blender.org
> >>> >>>>>>>>>>>>>>>>>>
> http://lists.blender.org/mailman/listinfo/bf-committers
> >>> >>>>>>>>>>>>>>>>>>
> >>> >>>>>>>>>>>>>>>>> _______________________________________________
> >>> >>>>>>>>>>>>>>>>> Bf-committers mailing list
> >>> >>>>>>>>>>>>>>>>> Bf-committers at blender.org
> >>> >>>>>>>>>>>>>>>>>
> http://lists.blender.org/mailman/listinfo/bf-committers
> >>> >>>>>>>>>>>>>>>>>
> >>> >>>>>>>>>>>>>>>> _______________________________________________
> >>> >>>>>>>>>>>>>>>> Bf-committers mailing list
> >>> >>>>>>>>>>>>>>>> Bf-committers at blender.org
> >>> >>>>>>>>>>>>>>>>
> http://lists.blender.org/mailman/listinfo/bf-committers
> >>> >>>>>>>>>>>>>>> _______________________________________________
> >>> >>>>>>>>>>>>>>> Bf-committers mailing list
> >>> >>>>>>>>>>>>>>> Bf-committers at blender.org
> >>> >>>>>>>>>>>>>>>
> http://lists.blender.org/mailman/listinfo/bf-committers
> >>> >>>>>>>>>>>>>>>
> >>> >>>>>>>>>>>>>> _______________________________________________
> >>> >>>>>>>>>>>>>> Bf-committers mailing list
> >>> >>>>>>>>>>>>>> Bf-committers at blender.org
> >>> >>>>>>>>>>>>>> http://lists.blender.org/mailman/listinfo/bf-committers
> >>> >>>>>>>>>>>>>>
> >>> >>>>>>>>>>>>> _______________________________________________
> >>> >>>>>>>>>>>>> Bf-committers mailing list
> >>> >>>>>>>>>>>>> Bf-committers at blender.org
> >>> >>>>>>>>>>>>> http://lists.blender.org/mailman/listinfo/bf-committers
> >>> >>>>>>>>>>>>>
> >>> >>>>>>>>>>>> _______________________________________________
> >>> >>>>>>>>>>>> Bf-committers mailing list
> >>> >>>>>>>>>>>> Bf-committers at blender.org
> >>> >>>>>>>>>>>> http://lists.blender.org/mailman/listinfo/bf-committers
> >>> >>>>>>>>>>>>
> >>> >>>>>>>>>>> _______________________________________________
> >>> >>>>>>>>>>> Bf-committers mailing list
> >>> >>>>>>>>>>> Bf-committers at blender.org
> >>> >>>>>>>>>>> http://lists.blender.org/mailman/listinfo/bf-committers
> >>> >>>>>>>>>>>
> >>> >>>>>>>>>> _______________________________________________
> >>> >>>>>>>>>> Bf-committers mailing list
> >>> >>>>>>>>>> Bf-committers at blender.org
> >>> >>>>>>>>>> http://lists.blender.org/mailman/listinfo/bf-committers
> >>> >>>>>>>>>>
> >>> >>>>>>>>> _______________________________________________
> >>> >>>>>>>>> Bf-committers mailing list
> >>> >>>>>>>>> Bf-committers at blender.org
> >>> >>>>>>>>> http://lists.blender.org/mailman/listinfo/bf-committers
> >>> >>>>>>>>>
> >>> >>>>>>>> _______________________________________________
> >>> >>>>>>>> Bf-committers mailing list
> >>> >>>>>>>> Bf-committers at blender.org
> >>> >>>>>>>> http://lists.blender.org/mailman/listinfo/bf-committers
> >>> >>>>>> _______________________________________________
> >>> >>>>>> Bf-committers mailing list
> >>> >>>>>> Bf-committers at blender.org
> >>> >>>>>> http://lists.blender.org/mailman/listinfo/bf-committers
> >>> >>>>>>
> >>> >>>>> _______________________________________________
> >>> >>>>> Bf-committers mailing list
> >>> >>>>> Bf-committers at blender.org
> >>> >>>>> http://lists.blender.org/mailman/listinfo/bf-committers
> >>> >>>>>
> >>> >>>> _______________________________________________
> >>> >>>> Bf-committers mailing list
> >>> >>>> Bf-committers at blender.org
> >>> >>>> http://lists.blender.org/mailman/listinfo/bf-committers
> >>> >>>>
> >>> >>> _______________________________________________
> >>> >>> Bf-committers mailing list
> >>> >>> Bf-committers at blender.org
> >>> >>> http://lists.blender.org/mailman/listinfo/bf-committers
> >>> >>
> >>> > _______________________________________________
> >>> > Bf-committers mailing list
> >>> > Bf-committers at blender.org
> >>> > http://lists.blender.org/mailman/listinfo/bf-committers
> >>> >
> >>>
> >>> _______________________________________________
> >>> Bf-committers mailing list
> >>> Bf-committers at blender.org
> >>> http://lists.blender.org/mailman/listinfo/bf-committers
> >>>
> >> _______________________________________________
> >> Bf-committers mailing list
> >> Bf-committers at blender.org
> >> http://lists.blender.org/mailman/listinfo/bf-committers
> >
> >
> >
> > --
> > - Campbell
>
>
>
> --
> - Campbell
> _______________________________________________
> Bf-committers mailing list
> Bf-committers at blender.org
> http://lists.blender.org/mailman/listinfo/bf-committers
>


More information about the Bf-committers mailing list