Sign in to follow this  

B-Splines

This topic is 4213 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

I've been trying to learn how a B-Spline works (mathematically), and so far, I've gotten that one starts with a knot vector of size m + 2n and a set of m points for a curve of degree n. I've also figured out the algorithm to generate the functions for individual segments, notated as capital N with subscripts... but where does it go from that point? I have been reading from another paper I found on these forums: http://members.gamedev.net/skyork/pdfs/Bspline_Construction_Summary2005.pdf and I don't get the final conversion to matrix forms. Where in this does the evaluation of the actual spline come in?

Share this post


Link to post
Share on other sites
The only matrix I see is used to find the coefficents. The coefficents are found based on the fact that you want the b-spline to pass through those given points. The coefficents have to be such that when used to weight the sum of the relevant basis functions at a value of t for a given point it produces the point. That's where the Ac=f comes from. The matrix A is of little value in evaluating the function at an arbitrary value of t since it requires evaluation of every basis function even though only three or four may actually be relevant. So in evaluating the actual function you just evaluate the relevant basis function and sum them up using the weighting provided by the coefficents found using that matrix.

I'm not strong on b-splines, but the basic idea is that you fit an nth degree polynomial to any n+1 points. So you do that for consecutive points, that's your basis functions. If you plot them, I believe, you'll find each passes through n+1 consecutive points though which varies by basis function. You'll also find that n+1 of them pass through any given point. Both being when you are sufficently removed from the first and last points. What you actually get is a differant nth degree polynomial between each point in most cases. It is a linear sum of nth or lower degree polynomials producing an nth degree or lower polynomial. Each side of a point is, in most cases, a differant polynomial, but at the point both have the same value as well as 1st and 2nd order derivatives which makes it look smooth.

Share this post


Link to post
Share on other sites
Sign in to follow this