1 Dr. Scott Schaefer Blossoming and B-splines. 2/105 Blossoms/Polar Forms A blossom b(t 1,t 2,…,t n ) of a polynomial p(t) is a multivariate function.

Slides:



Advertisements
Similar presentations
Computer Graphics (Spring 2008) COMS 4160, Lecture 6: Curves 1
Advertisements

Cubic Curves CSE167: Computer Graphics Instructor: Steve Rotenberg UCSD, Fall 2006.
1 Dr. Scott Schaefer Bezier Triangles and Multi-Sided Patches.
© University of Wisconsin, CS559 Spring 2004
Jehee Lee Seoul National University
B-Spline Blending Functions
KMMCS, April. 2003, Lee Byung-Gook, Dongseo Univ., Spline Methods in CAGD Lee Byung-Gook Dongseo Univ.
1 Curves and Surfaces. 2 Representation of Curves & Surfaces Polygon Meshes Parametric Cubic Curves Parametric Bi-Cubic Surfaces Quadric Surfaces Specialized.
CS CS 175 – Week 9 B-Splines Blossoming, Bézier Splines.
CS CS 175 – Week 9 B-Splines Definition, Algorithms.
Rational Bezier Curves
1 Outline What is polar form? B-Spline –Labeling, why (0,1,2), (1,2,3)… ? –Knot Vector, why (-2,-1,0,1,2,…) ? Derivation of B-Spline points –Maybe(!?)
Spline Interpretation ABC Introduction and outline Based mostly on Wikipedia.
09/04/02 Dinesh Manocha, COMP258 Bezier Curves Interpolating curve Polynomial or rational parametrization using Bernstein basis functions Use of control.
CS CS 175 – Week 8 Bézier Curves Definition, Algorithms.
Modeling of curves Needs a ways of representing curves: Reproducible - the representation should give the same curve every time; Computationally Quick;
1 Lecture 13 Modeling Curved Lines and Surfaces. 2 Types of Surfaces Ruled Surfaces B-Splines and Bezier Curves Surfaces of Revolution.
1 Dr. Scott Schaefer The Bernstein Basis and Bezier Curves.
1 Dr. Scott Schaefer Tensor-Product Surfaces. 2/64 Smooth Surfaces Lagrange Surfaces  Interpolating sets of curves Bezier Surfaces B-spline Surfaces.
Cubic Bezier and B-Spline Curves
1 Dr. Scott Schaefer Catmull-Rom Splines: Combining B-splines and Interpolation.
Bezier and Spline Curves and Surfaces Ed Angel Professor of Computer Science, Electrical and Computer Engineering, and Media Arts University of New Mexico.
Bspline Notes Jordan Smith UC Berkeley CS184. Outline Bézier Basis Polynomials –Linear –Quadratic –Cubic Uniform Bspline Basis Polynomials –Linear –Quadratic.
RASTER CONVERSION ALGORITHMS FOR CURVES: 2D SPLINES 2D Splines - Bézier curves - Spline curves.
1 Dr. Scott Schaefer Subdivision Curves. 2/96 What is subdivision? Set of rules S that take a curve as input and produce a more highly refined curve as.
Bezier and Spline Curves and Surfaces CS4395: Computer Graphics 1 Mohan Sridharan Based on slides created by Edward Angel.
COEN Computer Graphics I
CS Subdivision I: The Univariate Setting Peter Schröder.
Curve Surfaces June 4, Examples of Curve Surfaces Spheres The body of a car Almost everything in nature.
Splines III – Bézier Curves
Splines By: Marina Uchenik.
KMMCS, Jan. 2006, Spline Methods in CAGD, Spline Methods in CAGD byung-gook lee Dongseo Univ.
1 Introduction to Computer Graphics with WebGL Ed Angel Professor Emeritus of Computer Science Founding Director, Arts, Research, Technology and Science.
Curve Modeling B-Spline Curves
(Spline, Bezier, B-Spline)
V. Space Curves Types of curves Explicit Implicit Parametric.
CS 445 / 645 Introduction to Computer Graphics Lecture 23 Bézier Curves Lecture 23 Bézier Curves.
1 Dr. Scott Schaefer Smooth Curves. 2/109 Smooth Curves Interpolation  Interpolation through Linear Algebra  Lagrange interpolation Bezier curves B-spline.
University of Texas at Austin CS384G - Computer Graphics Fall 2008 Don Fussell Parametric Curves.
CS 445/645 Fall 2001 Splines/Film/Animation. Final Exam Thursday, December 13 th from 7 – 10 p.m. –Room Olsson 011 You may use one sheet of notes (8.5.
Splines IV – B-spline Curves based on: Michael Gleicher: Curves, chapter 15 in Fundamentals of Computer Graphics, 3 rd ed. (Shirley & Marschner) Slides.
Computer Graphics Representing Curves and Surfaces.
Keyframing and Splines Jehee Lee Seoul National University.
CS 376 Introduction to Computer Graphics 04 / 25 / 2007 Instructor: Michael Eckmann.
Representation of Curves & Surfaces Prof. Lizhuang Ma Shanghai Jiao Tong University.
Curves: ch 4 of McConnell General problem with constructing curves: how to create curves that are “smooth” CAD problem Curves could be composed of segments.
11/26/02(C) University of Wisconsin Last Time BSplines.
Parametric Curves CS 318 Interactive Computer Graphics John C. Hart.
(c) 2002 University of Wisconsin
Splines Sang Il Park Sejong University. Particle Motion A curve in 3-dimensional space World coordinates.
Foundations of Computer Graphics (Spring 2012) CS 184, Lecture 12: Curves 1
Blossoms CS 419 Advanced Topics in Computer Graphics John C. Hart
Rendering Bezier Curves (1) Evaluate the curve at a fixed set of parameter values and join the points with straight lines Advantage: Very simple Disadvantages:
Graphics Programming 2003, Lee Byung-Gook, Dongseo Univ., Graphics Programming Lee Byung-Gook Dongseo Univ.
Curves University of British Columbia CPSC 314 Computer Graphics Jan-Apr 2013 Tamara Munzner.
Introduction to Parametric Curve and Surface Modeling.
B(asis)-Splines Ashish Myles CISE, UF. Splines ● Piecewise polynomial ● More flexible than single polynomials – can have finite support – can be periodic.
Graphics Programming 2003, Lee Byung-Gook, Dongseo Univ., Graphics Programming Lee Byung-Gook Dongseo Univ.
© University of Wisconsin, CS559 Spring 2004
CS 445 / 645 Introduction to Computer Graphics
(Spline, Bezier, B-Spline)
Bezier Triangles and Multi-Sided Patches
CSE 167 [Win 17], Lecture 9: Curves 1 Ravi Ramamoorthi
Parametric Curves.
© University of Wisconsin, CS559 Spring 2004
Least Squares Curves, Rational Representations, Splines and Continuity
The Bernstein Basis and Bezier Curves
Lecture 21: B Spline Curve
Computer Aided Geometric Design
Introduction to Parametric Curve and Surface Modeling
Presentation transcript:

1 Dr. Scott Schaefer Blossoming and B-splines

2/105 Blossoms/Polar Forms A blossom b(t 1,t 2,…,t n ) of a polynomial p(t) is a multivariate function with the properties:  Symmetry: b(t 1,t 2,…,t n ) = b(t m(1),t m(2),…,t m(n) ) for any permutation m of (1,2,…,n)  Multi-affine: b(t 1,t 2,…,(1-u)t k +u w k,,…t n ) = (1-u)b(t 1,t 2,…,t k,,…t n ) + u b(t 1,t 2,…,w k,,…t n )  Diagonal: b(t,t,…,t) = p(t)

3/105 Blossoms/Polar Forms A blossom b(t 1,t 2,…,t n ) of a polynomial p(t) is a multivariate function with the properties:  Symmetry: b(t 1,t 2,…,t n ) = b(t m(1),t m(2),…,t m(n) ) for any permutation m of (1,2,…,n)  Multi-affine: b(t 1,t 2,…,(1-u)t k +u w k,,…t n ) = (1-u)b(t 1,t 2,…,t k,,…t n ) + u b(t 1,t 2,…,w k,,…t n )  Diagonal: b(t,t,…,t) = p(t) The blossom always exists and is unique!!!

4/105 Examples of Blossoms

5/105 Examples of Blossoms

6/105 Examples of Blossoms

7/105 Examples of Blossoms

8/105 Examples of Blossoms

9/105 Examples of Blossoms

10/105 Examples of Blossoms

11/105 Examples of Blossoms

12/105 Examples of Blossoms

13/105 Examples of Blossoms

14/105 Examples of Blossoms

15/105 Examples of Blossoms

16/105 Examples of Blossoms

17/105 Examples of Blossoms

18/105 Blossoms/Polar Forms Symmetry: b(t 1,…,t n ) = b(t m(1),…,t m(n) ) Multi-affine: b(t 1,…,(1-u)t k +u w k,,…t n ) = (1-u)b(t 1,…,t k,,…t n ) + u b(t 1,…,w k,,…t n ) Diagonal: b(t,…,t) = p(t)

19/105 Pyramid Algorithms for Bezier Curves

20/105 Pyramid Algorithms for Bezier Curves

21/105 Pyramid Algorithms for Bezier Curves Bezier curve Bezier control points

22/105 Subdivision Using Blossoming Control points of left Bezier curve!

23/105 Subdivision Using Blossoming Control points of right Bezier curve!

24/105 Change of Basis Using Blossoming Given a polynomial p(t) of degree n, find the coefficients of the same Bezier curve

25/105 Change of Basis Using Blossoming Given a polynomial p(t) of degree n, find the coefficients of the same Bezier curve

26/105 Change of Basis Using Blossoming Example: Find Bezier coefficients of p(t)=1+2t+3t 2 -t 3 Old Method

27/105 Change of Basis Using Blossoming Example: Find Bezier coefficients of p(t)=1+2t+3t 2 -t 3 New Method

28/105 Degree Elevation

29/105 Degree Elevation Using Blossoming

30/105 Degree Elevation Using Blossoming Symmetry: is symmetric Multi-affine: is multi-affine Diagonal:

31/105 Degree Elevation Using Blossoming

32/105 Homogeneous Polynomials and Blossoming Polynomial: Homogeneous Polynomial:

33/105 The Homogeneous Blossom Homogenize each parameter of the blossom independently

34/105 The Homogeneous Blossom Homogenize each parameter of the blossom independently

35/105 The Homogeneous Blossom Homogenize each parameter of the blossom independently homogenized combinations

36/105 The Homogeneous Blossom Homogenize each parameter of the blossom independently

37/105 The Homogeneous Blossom Homogenize each parameter of the blossom independently

38/105 Homogeneous deCasteljau Algorithm Really b((0,1),(0,1),(1,1))

39/105 Homogeneous deCasteljau Algorithm

40/105 Homogeneous deCasteljau Algorithm

41/105 Homogeneous deCasteljau Algorithm Homogeneous blossom evaluated at (t,1) and (1,0) yields derivatives!!!

42/105 Homogeneous Blossoms and Derivatives

43/105 Problems with Bezier Curves More control points means higher degree Moving one control point affects the entire curve

44/105 Problems with Bezier Curves More control points means higher degree Moving one control point affects the entire curve

45/105 Problems with Bezier Curves More control points means higher degree Moving one control point affects the entire curve Solution: Use lots of Bezier curves and maintain C k continuity!!!

46/105 Problems with Bezier Curves More control points means higher degree Moving one control point affects the entire curve Solution: Use lots of Bezier curves and maintain C k continuity!!! Difficult to keep track of all the constraints. 

47/105 B-spline Curves Not a single polynomial, but lots of polynomials that meet together smoothly Local control

48/105 B-spline Curves Not a single polynomial, but lots of polynomials that meet together smoothly Local control

49/105 History of B-splines Designed to create smooth curves Similar to physical process of bending wood Early Work  de Casteljau at Citroen  Bezier at Renault  de Boor at General Motors

50/105 B-spline Curves Curve defined over a set of parameters t 0,…,t k (t i t i+1 ) with a polynomial of degree n in each interval [t i, t i+1 ] that meet with C n-1 continuity t i do not have to be evenly spaced Commonly called NURBS  Non-Uniform Rational B-Splines

51/105 B-Spline Basis Functions

52/105 B-Spline Basis Functions

53/105 B-Spline Basis Functions

54/105 B-Spline Basis Functions

55/105 B-Spline Basis Functions

56/105 B-Spline Basis Functions

57/105 B-Spline Basis Functions

58/105 B-Spline Curves

59/105 B-Splines Via Blossoming

60/105 B-Splines Via Blossoming

61/105 B-Splines Via Blossoming Single polynomial

62/105 B-Splines Via Blossoming

63/105 B-Splines Via Blossoming

64/105 B-Splines Via Blossoming

65/105 B-Splines Via Blossoming

66/105 B-Splines Via Blossoming

67/105 B-Splines Via Blossoming n-1 derivatives are equal yielding C n-1 continuity!!!

68/105 B-Splines Via Blossoming

69/105 B-Splines Via Blossoming n-2 derivatives are equal yielding C n-2 continuity at doubled knot!!!

70/105 B-Splines Via Blossoming In general, curves have C n-u continuity at knot of multiplicity u

71/105 Conversion to Bezier Form

72/105 Conversion to Bezier Form

73/105 Conversion to Bezier Form

74/105 Polynomial Reproduction Given a polynomial p(t) and a set of knots t 1, t 2, t 3, …, find control points for the b-spline curve that produces p(t)

75/105 Polynomial Reproduction Given a polynomial p(t) and a set of knots t 1, t 2, t 3, …, find control points for the b-spline curve that produces p(t)

76/105 Polynomial Reproduction Given a polynomial p(t) and a set of knots t 1, t 2, t 3, …, find control points for the b-spline curve that produces p(t)

77/105 Polynomial Reproduction Given a polynomial p(t) and a set of knots t 1, t 2, t 3, …, find control points for the b-spline curve that produces p(t) Control points!!!

78/105 Knot Insertion Given a B-spline curve with knot sequence …, t k-2, t k-1, t k, t k+1, t k+2, t k+3, … generate the control points for an identical B-spline curve over the knot sequence …, t k-2, t k-1, t k, u, t k+1, t k+2, t k+3, …

79/105 Boehm’s Knot Insertion Algorithm Given curve with knots t 1, t 2, t 3, t 4, t 5, t 6, find curve with knots t 1, t 2, t 3, u, t 4, t 5, t 6

80/105 Boehm’s Knot Insertion Algorithm Given curve with knots t 1, t 2, t 3, t 4, t 5, t 6, find curve with knots t 1, t 2, t 3, u, t 4, t 5, t 6

81/105 Boehm’s Knot Insertion Algorithm Given curve with knots t 1, t 2, t 3, t 4, t 5, t 6, find curve with knots t 1, t 2, t 3, u, u, t 4, t 5, t 6

82/105 The Oslo Algorithm Given curve with knots t 1, t 2, t 3, t 4, t 5, t 6, find curve with knots t 1, t 2, t 3, u 1, u 2, u 3, u 4, t 4, t 5, t 6

83/105 The Oslo Algorithm Given curve with knots t 1, t 2, t 3, t 4, t 5, t 6, find curve with knots t 1, t 2, t 3, u 1, u 2, u 3, u 4, t 4, t 5, t 6

84/105 The Oslo Algorithm Given curve with knots t 1, t 2, t 3, t 4, t 5, t 6, find curve with knots t 1, t 2, t 3, u 1, u 2, u 3, u 4, t 4, t 5, t 6

85/105 Degree Elevation for B-splines Degree n B-splines meet with C n-1 continuity Degree n+1 B-splines meet with C n continuity Must double knots to maintain same degree of continuity!!!

86/105 Subdivision for Non-Uniform B-splines Given a knot sequence t 1, t 2, t 3, t 4, …, insert knots u 1, u 2, u 3, u 4, … such that t i u i t i+1

87/105 Subdivision for Non-Uniform B-splines Given a knot sequence t 1, t 2, t 3, t 4, …, insert knots u 1, u 2, u 3, u 4, … such that t i u i t i+1 Double control points At level 0<k<n+1, insert knots u k-1, u k, u k, u k+1, u k+1, … into pyramid

88/105 Schaefer’s Algorithm

89/105 Schaefer’s Algorithm

90/105 Schaefer’s Algorithm

91/105 Schaefer’s Algorithm

92/105 Schaefer’s Algorithm

93/105 Schaefer’s Algorithm

94/105 B-spline Properties Piecewise polynomial C n-u continuity at knots of multiplicity u Compact support Non-negativity implies local convex hull property Variation Diminishing

95/105 B-spline Curve Example

96/105 B-spline Curve Example

97/105 B-spline Curve Example

98/105 Choosing Knot Values B-splines dependent on choice of knots t i Can we choose t i automatically?

99/105 Choosing Knot Values B-splines dependent on choice of knots t i Can we choose t i automatically?

100/105 Choosing Knot Values B-splines dependent on choice of knots t i Can we choose t i automatically? Uniform parameterization

101/105 Choosing Knot Values B-splines dependent on choice of knots t i Can we choose t i automatically? Centripetal parameterization

102/105 Choosing Knot Values B-splines dependent on choice of knots t i Can we choose t i automatically? Chord length parameterization

103/105 Choosing Knot Values B-splines dependent on choice of knots t i Can we choose t i automatically? Uniform parameterization

104/105 Choosing Knot Values B-splines dependent on choice of knots t i Can we choose t i automatically? Centripetal parameterization

105/105 Choosing Knot Values B-splines dependent on choice of knots t i Can we choose t i automatically? Chord length parameterization