270 likes | 451 Views
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 011. V 111. V 000.
E N D
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 CurvesDeCastlejau Algorithm V001 V011 V111 V000 Insert at t = ¾
Review of Bézier CurvesDeCastlejau Algorithm 001 011 Insert at t = ¾ 111 000
Review of Bézier CurvesDeCastlejau Algorithm 001 011 0¾1 00¾ ¾11 Insert at t = ¾ 111 000
Review of Bézier CurvesDeCastlejau Algorithm 001 011 0¾1 0¾¾ 00¾ ¾¾1 ¾11 Insert at t = ¾ 111 000
Review of Bézier CurvesDeCastlejau Algorithm 001 011 0¾1 0¾¾ 00¾ ¾¾¾ ¾¾1 ¾11 Insert at t = ¾ 111 000
Review of Bézier CurvesDeCastlejau Algorithm 001 011 0¾1 0¾¾ 00¾ ¾¾¾ ¾¾1 ¾11 Insert at t = ¾ 111 000
Review of Bézier CurvesDeCastlejau Algorithm 001 011 0¾1 0¾¾ 00¾ ¾¾¾ ¾¾1 ¾11 Insert at t = ¾ 111 000
Review of Bézier CurvesDeCastlejau Algorithm 001 011 0¾1 0¾¾ 00¾ ¾¾¾ ¾¾1 ¾11 Insert at t = ¾ 111 000
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
-1 0 1 2 Linear Bézier Basis Poly’s V0 Vt V1 Vt Bez1(t) = = (1-t) V0 + tV1 1-t t V0 V1 Knots:
Vtt Bez2(t) = = (1-t)2 V00 + 2(1-t)t V01 + t2 V11 V0t Vt1 1-t 1-t 1-t t t t V00 V01 V11 Quadratic Bézier Basis Poly’s V01 Vtt Vt1 V0t V00 V11
-1 0 1 2 Quadratic Bézier Basis Poly’s Bez2(t) = (1-t)2V00 + 2(1-t)tV01 + t2V11 Knots:
Vttt Bez3(t) = V0tt Vtt1 = (1-t)3 V000 + 3(1-t)2t V001 + 3(1-t)t2 V011 + t3 V111 1-t 1-t 1-t 1-t 1-t 1-t t t t t t t V00t V0t1 Vt11 V000 V001 V011 V111 Cubic Bézier Basis Poly’s 0t1 001 011 ttt 0tt tt1 00t t11 000 111
-1 0 1 2 Cubic Bézier Basis Poly’s Bez3(t) = (1-t)3V000 + 3(1-t)2tV001 + 3(1-t)t2V011 + t3V111 Knots:
234 345 Blossoming ofBsplines 456 123 Knots: 0 1 2 3 4 5 6 7
234 33.54 345 Blossoming ofBsplines 233.5 3.545 456 123 Knots: 0 1 2 3 3.5 4 5 6 7
234 33.54 345 Blossoming ofBsplines 33.53.5 3.53.54 233.5 3.545 456 123 Knots: 0 1 2 3 3.5 4 5 6 7
234 33.54 345 Blossoming ofBsplines 33.53.5 3.53.54 3.53.53.5 233.5 3.545 456 123 Knots: 0 1 2 3 3.5 4 5 6 7
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
-1 0 1 2 Uniform Linear Bspline Basis Poly’s V0 Vt V1 Vt B1(t) = = (1-t) V0 + tV1 1-t t V0 V1 Knots:
Vtt V0t Vt1 V-10 V01 V12 Uniform Quadratic Bspline Basis Poly’s V01 V0t Vtt Vt1 V-10 V12 B2(t) =
Uniform Quadratic Bspline Basis Poly’s V-10 V01 V12 Knots: -2 -1 0 1 2 3
0t1 -101 012 0tt tt1 -10t ttt t12 Vttt -2-10 123 V0tt Vtt1 V-10t V0t1 Vt12 V-2-10 V-101 V012 V123 Uniform Cubic Bspline Basis Poly’s B3(t) =
-3 -2 -1 0 1 2 3 4 Knots: Uniform Cubic Bspline Basis Poly’s V-2-10 V-101 V012 V123
0 0 1 1 2 2 0 0 0 0 1 1 1 1 0 0 1 1 2 2 3 3 0 1 2 3 4 Uniform Bsplines from Convolution = = =