Sign in to follow this  

Recursive Catmull Rom algorithm

This topic is 1954 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

In Siggraph '88 (24 years ago this week) there was a great article by Phillip J. Barry and Ronald N. Goldman titled "A Recursive Evaluation Algorithm for a Class of Catmull-Rom Splines".

In the article they detail a recursive approach to evaluate a CR spline. Representing it this way allows for curve parameters to be added (thus making it Non-Uniform), altering the trajectory of the curve (similar to the Tension parameter in a Cardinal or Kochanek Bartels spline).

I'm in the process of translating the formula but it's usually harder than it looks.

Has anyone implemented this? How much faster is it? Is the algorithm available in C++ form?

Thanks in advance.

CRD

Share this post


Link to post
Share on other sites
If the paper is from 1988, whatever supposed performance advantages this was supposed to have are probably irrelevant. We are talking about a period where many platforms may not have had hardware multipliers, so evaluating a cubic polynomial could be expensive. These days it's dirt cheap, so you don't need to be fancy. Being fancy may actually hurt.

Implement your splines in the most straight-forward way possible, and optimize only if a profiler tells you you should.

Share this post


Link to post
Share on other sites
Performance was not the main reason, though I'm curious how much faster it will be.

In order to achieve Centripetal Parameterization (from a 2010 paper "Parameterization and Applications of Catmull-Rom Curves"), we need a recursive approach to the Catmull Rom algorithm. That allows for arbitrary t (or s) values, which allows shape parameters.

We need a Catmull Rom spline where the control points represent the points of highest curvature (please see attached image).

I think many make the assumption that is the default when it's not.

Share this post


Link to post
Share on other sites

This topic is 1954 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this