Blossoms CS 419 Advanced Topics in Computer Graphics John C. Hart

Slides:



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

COMPUTER GRAPHICS CS 482 – FALL 2014 OCTOBER 8, 2014 SPLINES CUBIC CURVES HERMITE CURVES BÉZIER CURVES B-SPLINES BICUBIC SURFACES SUBDIVISION SURFACES.
Interpolation A method of constructing a function that crosses through a discrete set of known data points. .
Cubic Curves CSE167: Computer Graphics Instructor: Steve Rotenberg UCSD, Fall 2006.
09/25/02 Dinesh Manocha, COMP258 Triangular Bezier Patches Natural generalization to Bezier curves Triangles are a simplex: Any polygon can be decomposed.
Cubic Curves CSE169: Computer Animation Instructor: Steve Rotenberg UCSD, Winter 2005.
© University of Wisconsin, CS559 Spring 2004
B-Spline Blending Functions
KMMCS, April. 2003, Lee Byung-Gook, Dongseo Univ., Spline Methods in CAGD Lee Byung-Gook Dongseo Univ.
Bezier Curves and Splines David Eno MAT 499 Fall ‘06.
Lecture 29 of 42 Bezier Curves and Splines Wednesday, 02 April 2008
CS CS 175 – Week 9 B-Splines Blossoming, Bézier Splines.
Informationsteknologi Monday, December 10, 2007Computer Graphics - Class 161 Today’s class Curve fitting Evaluators Surfaces.
CS CS 175 – Week 9 B-Splines Definition, Algorithms.
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(!?)
09/04/02 Dinesh Manocha, COMP258 Bezier Curves Interpolating curve Polynomial or rational parametrization using Bernstein basis functions Use of control.
Modeling of curves Needs a ways of representing curves: Reproducible - the representation should give the same curve every time; Computationally Quick;
1 Dr. Scott Schaefer The Bernstein Basis and Bezier Curves.
09/25/02 Dinesh Manocha, COMP258 Subdividing a Bezier Patch Subdivide separately along u and v parameters To subdivide along the u parameter, subdivide.
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.
Modelling: Curves Week 11, Wed Mar 23
Computer Graphics (Fall 2005) COMS 4160, Lecture 7: Curves 2
Bspline Notes Jordan Smith UC Berkeley CS184. Outline Bézier Basis Polynomials –Linear –Quadratic –Cubic Uniform Bspline Basis Polynomials –Linear –Quadratic.
University of British Columbia CPSC 414 Computer Graphics © Tamara Munzner 1 Curves Week 13, Mon 24 Nov 2003.
Bezier and Spline Curves and Surfaces CS4395: Computer Graphics 1 Mohan Sridharan Based on slides created by Edward Angel.
Curve Surfaces June 4, Examples of Curve Surfaces Spheres The body of a car Almost everything in nature.
Splines III – Bézier Curves
Engineering Research Center for Computer Integrated Surgical Systems and Technology Fall 2000; Updated: 12 September 2015 Copyright © R. H. Taylor.
Interactive Graphics Lecture 9: Slide 1 Interactive Graphics Lecture 9: Introduction to Spline Curves.
(Spline, Bezier, B-Spline)
Numerical Computation
1 Dr. Scott Schaefer Smooth Curves. 2/109 Smooth Curves Interpolation  Interpolation through Linear Algebra  Lagrange interpolation Bezier curves B-spline.
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.
Review of Interpolation. A method of constructing a function that crosses through a discrete set of known data points.
Bézier Algorithms & Properties Glenn G. Chappell U. of Alaska Fairbanks CS 481/681 Lecture Notes Wednesday, March 3, 2004.
Korea University Jung Lee, Computer Graphics Laboratory 3D Game Engine Design David H. Eberly 8.3 Special Surfaces 2001/11/13.
Final Review Zhicheng Yan. Over Operator  Two formulas  Alpha Slides  C A over B = a A C A + (1 – a A ) a B C B and a A over B = a A + (1 – a A ) a.
NUBS by Brian Wyvill What’s that?. University of Calgary GraphicsJungle Project ENEL 555 B-Splines page 2 Uniform B-Splines Basis functions for B-Splines.
Chapter VI Parametric Curves and Surfaces
INTERPOLATION & APPROXIMATION. Curve algorithm General curve shape may be generated using method of –Interpolation (also known as curve fitting) Curve.
University of Texas at Austin CS384G - Computer Graphics Fall 2008 Don Fussell Parametric Curves.
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.
Geometric Modelling 2 INFO410 & INFO350 S Jack Pinches
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.
Parametric Curves CS 318 Interactive Computer Graphics John C. Hart.
CS 318 Intro to Computer Graphics John C. Hart
CS559 – Curves Lecture These are course notes (not used as slides) Written by Mike Gleicher, Oct Updates Oct 2006, 2007 Updates Oct 2008 © 2005 Michael.
Foundations of Computer Graphics (Spring 2012) CS 184, Lecture 12: Curves 1
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:
Kansas State University Department of Computing and Information Sciences CIS 736: Computer Graphics Lecture 13 of 42 Wednesday, 15 February 2006 William.
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.
CS552: Computer Graphics Lecture 19: Bezier Curves.
Graphics Programming 2003, Lee Byung-Gook, Dongseo Univ., Graphics Programming Lee Byung-Gook Dongseo Univ.
COMPUTER GRAPHICS CHAPTERS CS 482 – Fall 2017 SPLINES
© University of Wisconsin, CS559 Spring 2004
Lecture 22: B Spline Curve Properties
CS5500 Computer Graphics May 11, 2006
(Spline, Bezier, B-Spline)
CSE 167 [Win 17], Lecture 10: Curves 2 Ravi Ramamoorthi
Parametric Curves.
Chapter XVII Parametric Curves and Surfaces
The Bernstein Basis and Bezier Curves
Curve design 455.
Lecture 21: B Spline Curve
Computer Aided Geometric Design
Computer Aided Geometric Design Mika Hirsch
Presentation transcript:

Blossoms CS 419 Advanced Topics in Computer Graphics John C. Hart Borrowed somewhat from Tom Sederberg’s notes

de Casteljau p1 p12 p2 p012 1-t de Casteljau algorithm evaluates a point on a Bezier curve by scaffolding lerps Blossoming renames the control and intermediate points, like p12, using a polar form, like p(0,t,1) p123 p0123 p01 t p23 p0 p3

de Casteljau p(1,0,0) p12 p(1,1,0) p012 1-t de Casteljau algorithm evaluates a point on a Bezier curve by scaffolding lerps Blossoming renames the control and intermediate points, like p12, using a polar form, like p(0,t,1) p123 p0123 p01 t p23 p(0,0,0) p(1,1,1)

de Casteljau p(1,0,0) p(1,t,0) p(1,1,0) p012 1-t de Casteljau algorithm evaluates a point on a Bezier curve by scaffolding lerps Blossoming renames the control and intermediate points, like p12, using a polar form, like p(0,t,1) p123 p0123 p(t,0,0) t p(1,1,t) p(0,0,0) p(1,1,1)

de Casteljau p(1,0,0) p(1,t,0) p(1,1,0) p(t,t,0) 1-t de Casteljau algorithm evaluates a point on a Bezier curve by scaffolding lerps Blossoming renames the control and intermediate points, like p12, using a polar form, like p(0,t,1) p(1,t,t) p0123 p(t,0,0) t p(1,1,t) p(0,0,0) p(1,1,1)

de Casteljau p(1,0,0) p(1,t,0) p(1,1,0) p(t,t,0) 1-t de Casteljau algorithm evaluates a point on a Bezier curve by scaffolding lerps Blossoming renames the control and intermediate points, like p12, using a polar form, like p(0,t,1) p(1,t,t) p(t,t,t) p(t,0,0) t p(1,1,t) p(0,0,0) p(1,1,1)

Blossoming Rules p(1,0,0) p(1,t,0) p(1,1,0) p(t,t,0) 1-t # of parameters = degree Order doesn’t matter p(a,b,c) = p(b,a,c) Linear in any parameter ap(a,b,c) = p(aa,b,c) = p(a,ab,c) p(a,b+c,d) = p(a,b,d) + p(a,c,d) Lerping: (1-t) p(0,0,0) + t p(1,0,0) = p(0 (1-t),0,0) + p(1 t,0,0) = p(0 (1-t) + 1 t,0,0) = p(t,0,0) p(1,t,t) p(t,t,t) p(t,0,0) t p(1,1,t) p(0,0,0) p(1,1,1)

Evaluation p(1,0,0) p(1,t,0) p(1,1,0) p(t,t,0) 1-t Goal is to find p(t) by diagonalization, by manipulating blossoms into p(t,t,t) de Casteljau algorithm blossoms into Bernstein polynomials p(1,t,t) p(t,t,t) p(t,0,0) t p(1,1,t) p(0,0,0) p(1,1,1) p(t) = p(t,t,t) = (1-t) p(t,t,0) + t p(t,t,1) = (1-t)[(1-t) p(t,0,0) + t p(t,0,1)] + t [(1-t) p(t,0,1) + t p(t,1,1)] = (1-t)2 p(t,0,0) + 2 (1-t) t p(t,0,1) + t2 p(t,1,1) = (1-t)2[(1-t)p(0,0,0)+tp(1,0,0)]+2 (1-t)t [(1-t)p(0,0,1)+tp(1,0,1)]+t2[(1-t)p(0,1,1)+tp(1,1,1)] = (1-t)3 p(0,0,0) + 3 (1-t)2 t p(0,0,1) + 3 (1-t) t2 p(0,1,1) + t3 p(1,1,1)

B-Spline Blossoms Three segments: [2,3],[3,4],[4,5] Points within each segment influenced by four surrounding control points Knots influenced by three surrounding control points Need two extra knots at each end of knot vector (in general, d-1 extra knots at each end) p(2,3,4) p(3,4,5) t=3 t=4 p(1,2,3) p(4,5,6) t=2 t=5 p(0,1,2) p(5,6,7) knot vector: [0 1 2 3 4 5 6 7]

Bohm Blossoms Trick: Think of each segment as a Bezier curve p(2,3,4) knot vector: [0 1 2 3 4 5 6 7]

Bohm Blossoms Trick: Think of each segment as a Bezier curve p(2,3,4) knot vector: [0 1 2 3 4 5 6 7]

Bohm Blossoms Trick: Think of each segment as a Bezier curve p(2,3,4) Where should the other two control points go for the [2,3] segment? p(2,3,4) p(3,4,5) p(3,3,3) p(1,2,3) p(4,5,6) p(2,2,2) p(0,1,2) p(5,6,7) knot vector: [0 1 2 3 4 5 6 7]

Bohm Blossoms Trick: Think of each segment as a Bezier curve p(4,2,3) Where should the other two control points go for the [2,3] segment? Need to find: p(2,2,3) = 2/3 p(1,2,3) + 1/3 p(4,2,3) p(3,2,3) = 1/3 p(1,2,3) + 2/3 p(4,2,3) p(4,2,3) p(3,4,5) p(3,2,3) p(3,3,3) p(2,2,3) p(1,2,3) p(4,5,6) p(2,2,2) p(0,1,2) p(5,6,7) knot vector: [0 1 2 3 4 5 6 7]

Bohm Blossoms Where are the endpoints located? Need to find: p(2,1,2) = 1/3 p(0,1,2) + 2/3 p(3,1,2) p(3,4,3) = 2/3 p(3,4,2) + 1/3 p(3,4,5) p(2,2,2) = 1/2 p(2,1,2) + 1/2 p(2,3,2) p(3,3,3) = 1/2 p(3,2,3) + 1/2 p(3,4,3) Reveals how to turn a B-spline into a Bezier curve! p(3,4,2) p(3,4,3) p(3,4,5) p(3,2,3) p(3,3,3) p(2,3,2) p(3,1,2) p(2,2,2) p(2,1,2) p(0,1,2) knot vector: [0 1 2 3 4 5 6 7]

Knot Insertion Suppose we want to add a knot at t = 3.5 p(2,3,4) knot vector: [0 1 2 3 4 5 6 7]

Knot Insertion Suppose we want to add a knot at t = 3.5 Then we need new cp’s p(2,3,3.5), p(3,3.5,4) and p(3.5,4,5) and can get rid of p(2,3,4) and p(3,4,5) p(3,3.5,4) p(2,3,4) p(3,4,5) p(2,3,3.5) p(3.5,4,5) t=3 t=4 p(1,2,3) p(4,5,6) t=2 t=5 p(0,1,2) p(5,6,7) knot vector: [0 1 2 3 4 5 6 7]

Knot Insertion Suppose we want to add a knot at t = 3.5 Then we need new cp’s p(2,3,3.5), p(3,3.5,4) and p(3.5,4,5) and can get rid of p(2,3,4) and p(3,4,5) p(3,3.5,4) p(2,3,3.5) p(3.5,4,5) t=3.5 p(1,2,3) p(4,5,6) t=2 t=5 p(0,1,2) p(5,6,7) knot vector: [0 1 2 3 3.5 4 5 6 7]

de Boor Algorithm What if we want to evaluate p(3.5)? Then create a triple knot at t = 3.5 and figure out where to put the control point p(3.5,3.5,3.5) p(3,3.5,4) p(2,3,3.5) p(3.5,4,5) t=3.5 p(1,2,3) p(4,5,6) t=2 t=5 p(0,1,2) p(5,6,7) knot vector: [0 1 2 3 3.5 4 5 6 7]

de Boor Algorithm What if we want to evaluate p(3.5)? p(3,3.5,4) Then create a triple knot at t = 3.5 and figure out where to put the control point p(3.5,3.5,3.5) Need p(3,3.5,3.5) and p(3.5,3.5,4) Also subdivides B-spline into [0,1,2,3,3.5,3.5,3.5] and [3.5,3.5,3.5,4,5,6,7] p(3,3.5,4) p(3,3.5,3.5) p(3.5,3.5,4) p(2,3,3.5) p(3.5,4,5) p(3.5,3.5,3.5) p(1,2,3) p(4,5,6) p(0,1,2) p(5,6,7) knot vector: [0 1 2 3 3.5 3.5 3.5 4 5 6 7]