CSCI480/582 Lecture 10 Chap.2.3 Cubic Splines – B-Splines and NURBS Feb, 13, 2009.

Slides:



Advertisements
Similar presentations
Curves Jim Van Verth Essential Math for Games Animation Problem: want to replay stored set of transformations  Generated by.
Advertisements

Geometric Modeling Notes on Curve and Surface Continuity Parts of Mortenson, Farin, Angel, Hill and others.
© University of Wisconsin, CS559 Spring 2004
Jehee Lee Seoul National University
B-Spline Blending Functions
Interpolation to Data Points Lizheng Lu Oct. 24, 2007.
Computer Animation Algorithms and Techniques
MAE 152 Computer Graphics for Scientists and Engineers
1 Curves and Surfaces. 2 Representation of Curves & Surfaces Polygon Meshes Parametric Cubic Curves Parametric Bi-Cubic Surfaces Quadric Surfaces Specialized.
Morphing Rational B-spline Curves and Surfaces Using Mass Distributions Tao Ju, Ron Goldman Department of Computer Science Rice University.
Informationsteknologi Monday, December 10, 2007Computer Graphics - Class 161 Today’s class Curve fitting Evaluators Surfaces.
CS CS 175 – Week 9 B-Splines Definition, Algorithms.
Chap 3 Interpolating Values
2002 by Jim X. Chen:
Rational Bezier Curves
09/04/02 Dinesh Manocha, COMP258 Bezier Curves Interpolating curve Polynomial or rational parametrization using Bernstein basis functions Use of control.
Modelling. Outline  Modelling methods  Editing models – adding detail  Polygonal models  Representing curves  Patched surfaces.
OpenGL Curves & Surfaces. Where u varies in some domain (say [0,1]). A Bezier surface patch is a vector-valued function of two variables Evaluators A.
Geometric Modeling Surfaces Mortenson Chapter 6 and Angel Chapter 9.
Cubic Bezier and B-Spline Curves
Curves Mortenson Chapter 2-5 and Angel Chapter 9
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.
Bezier and Spline Curves and Surfaces CS4395: Computer Graphics 1 Mohan Sridharan Based on slides created by Edward Angel.
COEN Computer Graphics I
V. Space Curves Types of curves Explicit Implicit Parametric.
1 Bezier Curves © Jeff Parker, Nov Goal We often wish to draw generate curves Through selection of arbitrary points Smooth (many derivatives)
CS 445 / 645 Introduction to Computer Graphics Lecture 23 Bézier Curves Lecture 23 Bézier Curves.
Vector Computer Graphic. Vector entities Line Circle, Ellipse, arc,… Curves: Spline, Bezier’s curve, … … Areas Solids Models.
Bézier Algorithms & Properties Glenn G. Chappell U. of Alaska Fairbanks CS 481/681 Lecture Notes Wednesday, March 3, 2004.
Computer Animation Rick Parent Computer Animation Algorithms and Techniques Interpolating Values.
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.
1 Bezier Curves and Surfaces © Jeff Parker, Nov 2011.
INTERPOLATION & APPROXIMATION. Curve algorithm General curve shape may be generated using method of –Interpolation (also known as curve fitting) Curve.
110/27/ :47 Graphics II Animation Introduction and Motion Control Session 6.
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.
Parametric Surfaces Define points on the surface in terms of two parameters Simplest case: bilinear interpolation s t s x(s,t)x(s,t) P 0,0 P 1,0 P 1,1.
Computer Graphics Representing Curves and Surfaces.
1 Bezier Curves and Surfaces © Jeff Parker, Nov 2009.
Geometric Modelling 2 INFO410 & INFO350 S Jack Pinches
Keyframing and Splines Jehee Lee Seoul National University.
CS 376 Introduction to Computer Graphics 04 / 25 / 2007 Instructor: Michael Eckmann.
CS 445 / 645 Introduction to Computer Graphics Lecture 23 Bézier Curves Lecture 23 Bézier Curves.
Representation of Curves & Surfaces Prof. Lizhuang Ma Shanghai Jiao Tong University.
CSCI480/582 Lecture 8 Chap.2.1 Principles of Key-framing Techniques Feb, 9, 2009.
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.
CSCE 441: Keyframe Animation/Smooth Curves (Cont.) Jinxiang Chai.
CSCE 441: Keyframe Animation/Smooth Curves (Cont.) Jinxiang Chai.
(c) 2002 University of Wisconsin
Keyframe Interpolation and Speed Control Jehee Lee Seoul National University.
1 CS 430/536 Computer Graphics I B-Splines and NURBS Week 5, Lecture 9 David Breen, William Regli and Maxim Peysakhov Geometric and Intelligent Computing.
Splines Sang Il Park Sejong University. Particle Motion A curve in 3-dimensional space World coordinates.
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.
Ship Computer Aided Design
Computing & Information Sciences Kansas State University Lecture 30 of 42CIS 636/736: (Introduction to) Computer Graphics Lecture 30 of 42 Wednesday, 09.
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:
Rick Parent - CIS681 Interpolation of a time-space curve Interpolation (of a curve in space) Speed control along curve Reparameterizing according to arc.
CS552: Computer Graphics Lecture 19: Bezier Curves.
CSCI480/582 Lecture 9 Chap.2.2 Cubic Splines – Hermit and Bezier Feb, 11, 2009.
© University of Wisconsin, CS559 Spring 2004
CS 445 / 645 Introduction to Computer Graphics
Chapter 10-2: Curves.
CS 430/536 Computer Graphics I Intro to Curves Week 4, Lecture 7
© University of Wisconsin, CS559 Spring 2004
Use Simpson's Rule with n = 10 to estimate the length of the arc of the twisted cubic {image} , from the origin to the point (3, 9, 27)
Computer Graphics Algorithms Ying Zhu Georgia State University
CSCE 441: Keyframe Animation/Smooth Curves (Cont.)
Presentation transcript:

CSCI480/582 Lecture 10 Chap.2.3 Cubic Splines – B-Splines and NURBS Feb, 13, 2009

Outline B-spline NURBS Generalization from curve to surface Calculate arc length Working with distance-time function

B-Spline – Basis Spline Theorem: every spline function of a given degree, smoothness, knot vector, and control points, can be represented as a linear combination of B- splines in the same spline space.

B-Spline Examples Uniform B-spline Uniform cubic B-spline

Non-uniform rational B-splines P0P0 P1P1 P2P2 P3P3 P4P4 P5P5 T 0, T 1,T 2 T3T3 T4T4 T5T5 T6T6 T 7, T 8,T 9 Cubic NURBS  Positional(0 th derivative), tangential(1 st derivative), curvature(2 nd derivative) continuity Invariant under affine and perspective transformation to the control points

Generalization from Curve to Surface Curve: vector valued function parameterized by a scalar parameter variable of u Surface: vector valued function parameterized by a two-element vector parameter variable of [u, v]

Calculate Arc-length of a curve Matrix representation of a Bezier curve Matrix representation of its Derivative vector Integration implemented by Piece-wise linear approximation

Working with distance-time function frame Arc length Speed=c frame Arc length Ease-in /ease-out Given two curves  C(u): vector function representing geometric path  S(t): scalar function representing distance-time relationship Animation of a rigid object along a path can be implemented by  t->s(t)->argLength2parameter->C(u) Applications are responsible For this conversion

OpenGL support of curves GLfloat ctrlpoints[4][3] = { { -4.0, -4.0, 0.0}, { -2.0, 4.0, 0.0}, {2.0, -4.0, 0.0}, {4.0, 4.0, 0.0}}; void myinit(void) { glClearColor(0.0, 0.0, 0.0, 1.0); glMap1f(GL_MAP1_VERTEX_3, 0.0, 1.0, 3, 4,&ctrlpoints[0][0]); glEnable(GL_MAP1_VERTEX_3); glShadeModel(GL_FLAT); } void display(void) { int i; glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glColor3f(1.0, 1.0, 1.0); glBegin(GL_LINE_STRIP); for (i = 0; i <= 30; i++) glEvalCoord1f((GLfloat) i/30.0); glEnd(); /* The following code displays the control points as dots. */ glPointSize(5.0); glColor3f(1.0, 1.0, 0.0); glBegin(GL_POINTS); for (i = 0; i < 4; i++) glVertex3fv(&ctrlpoints[i][0]); glEnd(); glFlush(); }