Bspline Notes Jordan Smith UC Berkeley CS184
Outline Bézier Basis Polynomials –Linear –Quadratic –Cubic Uniform Bspline Basis Polynomials –Linear –Quadratic –Cubic Uniform Bsplines from Convolution
Review of Bézier Curves DeCastlejau Algorithm V 001 V 111 V 000 V 011 Insert at t = ¾
Review of Bézier Curves DeCastlejau Algorithm Insert at t = ¾
Review of Bézier Curves DeCastlejau Algorithm ¾ ¾11 0¾1 Insert at t = ¾
Review of Bézier Curves DeCastlejau Algorithm ¾ ¾¾1 ¾11 0¾10¾1 0¾¾ Insert at t = ¾
Review of Bézier Curves DeCastlejau Algorithm ¾ ¾¾1 ¾11 0¾1 0¾¾ ¾¾¾ Insert at t = ¾
Review of Bézier Curves DeCastlejau Algorithm ¾ ¾¾1 ¾11 0¾1 0¾¾ ¾¾¾ Insert at t = ¾
Review of Bézier Curves DeCastlejau Algorithm ¾ ¾¾1 ¾11 0¾1 0¾¾ ¾¾¾ Insert at t = ¾
Review of Bézier Curves DeCastlejau Algorithm ¾ ¾¾1 ¾11 0¾1 0¾¾ ¾¾¾ Insert at t = ¾
Bézier Curves Summary DeCastlejau algorithm –Evaluate Position(t) and Tangent(t) –Subdivides the curve into 2 subcurves with independent control polygons Subdivision of Bézier curves and convex hull property allows for: –Adaptive rendering based on a flatness criterion –Adaptive collision detection using line segment tests
Linear Bézier Basis Poly’s Bez 1 (t) = VtVt V0V0 V1V1 V0V0 VtVt V1V1 = (1-t) V 0 + t V 1 1-tt Knots: 012
Quadratic Bézier Basis Poly’s V 01 V tt V0tV0t Vt1Vt1 V 00 V 01 V 11 1-tt t t Bez 2 (t) == (1-t) 2 V (1-t)t V 01 + t 2 V 11 V 00 V0tV0t V 11 Vt1Vt1 V tt
Knots: Quadratic Bézier Basis Poly’s Bez 2 (t) = (1-t) 2 V (1-t)t V 01 + t 2 V
Cubic Bézier Basis Poly’s t tt1 t11 0t10t1 0tt ttt V ttt V 0tt V tt1 V 00t V0t1V0t1 V t11 V 111 V 011 V 001 V tt t t t t t Bez 3 (t) == (1-t) 3 V (1-t) 2 t V (1-t)t 2 V t 3 V
Knots: Cubic Bézier Basis Poly’s Bez 3 (t) = (1-t) 3 V (1-t) 2 t V (1-t)t 2 V t 3 V
Blossoming of Bsplines Knots:
Blossoming of Bsplines Knots:
Blossoming of Bsplines Knots:
Blossoming of Bsplines Knots:
Bspline Blossoming Summary Blossoming of Bsplines is a generalization of the DeCastlejau algorithm Control point index triples on the same control line share 2 indices with each other Inserting a knot (t value) –Adds a new control point and curve segment –Adjusts other control points to form a control polygon Inserting the same t value reduces the parametric continuity of the curve A control point triple with all 3 indices equal is a point on the Bspline curve
Uniform Linear Bspline Basis Poly’s B 1 (t) = VtVt V0V0 V1V1 V0V0 VtVt V1V1 = (1-t) V 0 + t V 1 1-tt Knots: 012
Uniform Quadratic Bspline Basis Poly’s B 2 (t) = V tt V0tV0t Vt1Vt1 V -10 V 01 V 12 V 01 Vt1Vt1 V0tV0t V -10 V 12 V tt
Uniform Quadratic Bspline Basis Poly’s Knots: V -10 V 01 V 12
Uniform Cubic Bspline Basis Poly’s B 3 (t) = V 123 V 012 V -101 V V ttt V 0tt V tt1 V -10t V0t1V0t1 V t t tt1 t120t10t1 0tt ttt -2-10
Uniform Cubic Bspline Basis Poly’s Knots: V V -101 V 012 V 123
Uniform Bsplines from Convolution = 10 10 1023 = 102 = 10