[Bf-committers] An easy to use damped spline

Campbell Barton ideasman42 at gmail.com
Thu Jan 1 14:02:35 CET 2015


On Tue, Dec 30, 2014 at 12:41 AM, Ronan Ducluzeau <zeauron at gmail.com> wrote:
> I just want to remind that currently nurbs weights are not working in
> master since 2.5.

Tested, they work for nurbs curves & surfaces, but rather you use the
bug tracker if you found some case where they fail.

> 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
>>
> _______________________________________________
> Bf-committers mailing list
> Bf-committers at blender.org
> http://lists.blender.org/mailman/listinfo/bf-committers



-- 
- Campbell


More information about the Bf-committers mailing list