In this course we will need a set of techniques to represent curves and surfaces in 2-d and 3-d. Some reasons for this include

Similar documents
Interactive Graphics. Lecture 9: Introduction to Spline Curves. Interactive Graphics Lecture 9: Slide 1

Lecture 9: Introduction to Spline Curves

Curve Representation ME761A Instructor in Charge Prof. J. Ramkumar Department of Mechanical Engineering, IIT Kanpur

Computer Graphics Curves and Surfaces. Matthias Teschner

COMPUTER AIDED ENGINEERING DESIGN (BFF2612)

Design considerations

Information Coding / Computer Graphics, ISY, LiTH. Splines

Curves and Surfaces. CS475 / 675, Fall Siddhartha Chaudhuri

Need for Parametric Equations

Freeform Curves on Spheres of Arbitrary Dimension

An introduction to interpolation and splines

08 - Designing Approximating Curves

Fall CSCI 420: Computer Graphics. 4.2 Splines. Hao Li.

Spline Notes. Marc Olano University of Maryland, Baltimore County. February 20, 2004

Interpolation and Basis Fns

OUTLINE. Quadratic Bezier Curves Cubic Bezier Curves

Curves. Computer Graphics CSE 167 Lecture 11

Sung-Eui Yoon ( 윤성의 )

Splines. Connecting the Dots

Splines. Parameterization of a Curve. Curve Representations. Roller coaster. What Do We Need From Curves in Computer Graphics? Modeling Complex Shapes

Objects 2: Curves & Splines Christian Miller CS Fall 2011

CS130 : Computer Graphics Curves. Tamar Shinar Computer Science & Engineering UC Riverside

3D Modeling Parametric Curves & Surfaces. Shandong University Spring 2013

CSE 167: Introduction to Computer Graphics Lecture #13: Curves. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2017

Rational Bezier Surface

Computational Physics PHYS 420

Interactive Graphics Using Parametric Equations (Day 2)

LECTURE #6. Geometric Modelling for Engineering Applications. Geometric modeling for engineering applications

Introduction to Computer Graphics

Computer Graphics. Unit VI: Curves And Fractals. By Vaishali Kolhe

CS354 Computer Graphics Surface Representation IV. Qixing Huang March 7th 2018

Computer Animation. Rick Parent

3D Modeling Parametric Curves & Surfaces

CS337 INTRODUCTION TO COMPUTER GRAPHICS. Describing Shapes. Constructing Objects in Computer Graphics. Bin Sheng Representing Shape 9/20/16 1/15

Interpolation and Basis Fns

CS123 INTRODUCTION TO COMPUTER GRAPHICS. Describing Shapes. Constructing Objects in Computer Graphics 1/15

Computer Graphics. Curves and Surfaces. Hermite/Bezier Curves, (B-)Splines, and NURBS. By Ulf Assarsson

Until now we have worked with flat entities such as lines and flat polygons. Fit well with graphics hardware Mathematically simple

Connected Minimal Acceleration Trigonometric Curves

Curves and Surfaces. Computer Graphics COMP 770 (236) Spring Instructor: Brandon Lloyd

CS130 : Computer Graphics Curves (cont.) Tamar Shinar Computer Science & Engineering UC Riverside

Computergrafik. Matthias Zwicker Universität Bern Herbst 2016

EECS 487, Fall 2005 Exam 2

2D Spline Curves. CS 4620 Lecture 18

B-spline Curves. Smoother than other curve forms

Curves and Surface I. Angel Ch.10

Parametric curves. Brian Curless CSE 457 Spring 2016

Rendering Curves and Surfaces. Ed Angel Professor of Computer Science, Electrical and Computer Engineering, and Media Arts University of New Mexico

Parametric curves. Reading. Curves before computers. Mathematical curve representation. CSE 457 Winter Required:

CSE 167: Introduction to Computer Graphics Lecture #11: Bezier Curves. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2016

COMP3421. Global Lighting Part 2: Radiosity

Curves D.A. Forsyth, with slides from John Hart

CSE 167: Introduction to Computer Graphics Lecture 12: Bézier Curves. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2013

Animation Curves and Splines 2

Know it. Control points. B Spline surfaces. Implicit surfaces

A MATRIX FORMULATION OF THE CUBIC BÉZIER CURVE

3D Modeling techniques

Curves and Surfaces Computer Graphics I Lecture 10

Rational Bezier Curves

Bézier Splines. B-Splines. B-Splines. CS 475 / CS 675 Computer Graphics. Lecture 14 : Modelling Curves 3 B-Splines. n i t i 1 t n i. J n,i.

Central issues in modelling

Name: Let the Catmull-Rom curve q(u) be defined by the following control points: p 1 = 0, 1 p 2 = 1, 1 p 3 = 1, 0. p 2. p 1.

Geometric Modeling of Curves

Curves and Surfaces Computer Graphics I Lecture 9

Shape modeling Modeling technique Shape representation! 3D Graphics Modeling Techniques

Approximation of 3D-Parametric Functions by Bicubic B-spline Functions

Modeling 3D Objects: Part 2

Dgp _ lecture 2. Curves

Computer Graphics Splines and Curves

On Smooth Bicubic Surfaces from Quad Meshes

CS 475 / CS Computer Graphics. Modelling Curves 3 - B-Splines

Computergrafik. Matthias Zwicker. Herbst 2010

(Refer Slide Time: 00:02:24 min)

The goal is the definition of points with numbers and primitives with equations or functions. The definition of points with numbers requires a

Part II: OUTLINE. Visualizing Quaternions. Part II: Visualizing Quaternion Geometry. The Spherical Projection Trick: Visualizing unit vectors.

From curves to surfaces. Parametric surfaces and solid modeling. Extrusions. Surfaces of revolution. So far have discussed spline curves in 2D

B-Spline Polynomials. B-Spline Polynomials. Uniform Cubic B-Spline Curves CS 460. Computer Graphics

Curve and Surface Basics

Interpolating/approximating pp gcurves

Friday, 11 January 13. Interpolation

Computer Graphics / Animation

Mathematical Tools in Computer Graphics with C# Implementations Table of Contents

CS770/870 Spring 2017 Curve Generation

Spline Methods Draft. Tom Lyche and Knut Mørken. Department of Informatics Centre of Mathematics for Applications University of Oslo

Lecture IV Bézier Curves

Curves and Curved Surfaces. Adapted by FFL from CSE167: Computer Graphics Instructor: Ronen Barzel UCSD, Winter 2006

Four equations are necessary to evaluate these coefficients. Eqn

5.1 Introduction to the Graphs of Polynomials

IMAGE-BASED RENDERING

GL9: Engineering Communications. GL9: CAD techniques. Curves Surfaces Solids Techniques

Appendices - Parametric Keyframe Interpolation Incorporating Kinetic Adjustment and Phrasing Control

Natural Numbers and Integers. Big Ideas in Numerical Methods. Overflow. Real Numbers 29/07/2011. Taking some ideas from NM course a little further

Properties of Blending Functions

A DIVIDE AND CONQUER METHOD FOR CURVE DRAWING

u 0+u 2 new boundary vertex

Unit: Quadratic Functions

CS 475 / CS 675 Computer Graphics. Lecture 16 : Interpolation for Animation

Parametric Curves. University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell

2D Spline Curves. CS 4620 Lecture 13

MA 323 Geometric Modelling Course Notes: Day 21 Three Dimensional Bezier Curves, Projections and Rational Bezier Curves

Transcription:

Parametric Curves and Surfaces In this course we will need a set of techniques to represent curves and surfaces in 2-d and 3-d. Some reasons for this include Describing curves in space that objects move along in an animation. Describing shapes in 2-d as a collection of curves. Describing surfaces in 3-d as a way to construct solid shapes: we break the shapes down into patches and describe each patch as a 2-d surface embedded in a three dimensional space. The gold standard for constructing curves and surfaces is the parametric representation. For example, in two dimensions the parametric representation for a curve can be written p (t) = (p 1 (t), p 2 (t)) Likewise, in three dimensions a surface patch can be expressed as p (s,t) = (p 1 (s,t), p 2 (s,t), p 3 (s,t)) The challenge in each case is constructing the appropriate coordinate functions that will result in the curve or surface having a desired shape. Bezier Curves An alternative to constructing an explicit parametric representation is to use a constructive technique. One such constructive technique is due to Bezier, who developed a method for constructing curves based on iterated linear interpolation. In a simple linear interpolation we construct a straight line between two end points p and q : b p (t) = a (1-t) + b t a In an iterated interpolation we introduce one or more additional intermediate points (commonly referred to as control points) and do iterated interpolation using all of the points. The simplest example involves a single additional control point, c : 1

c d = a (1-t)+c t e = c (1-t) + b t a f = d (1-t) + e t b To start the construction, we first do a pair of linear interpolations from a to c and from c to b using the same factor t in both interpolations. Then, we do a third interpolation between the two interpolated points to construct a final point, f. As we vary the interpolation parameter t from 0 to 1, the final interpolated point will trace out a smooth curve from a to b. This construction results in a parameterized curve that takes the form f (t) = (f 1 (t), f 2 (t)) where f 1 (t) and f 2 (t) end up being second degree polynomials whose coefficients depend on the coordinates of the initial three points a, b and c. This construction is straightforward and very easy to implement in software, but suffers from a couple of serious problems. Although it is clear that moving the control point c around changes the shape of the curve, the relationship between c and the curve shape is not completely intuitive. The range of shapes that can be constructed in this way is somewhat limited. This is due to the fact that we are restricting ourselves to using a pair of quadratic polynomials in the parametric representation. Using higher degree polynomials would allow us to approximate a wider range of shapes. The solution to both of these problems is to use more control points and more rounds of interpolation. The most commonly used version is the cubic Bezier curve, which uses two control points and several more rounds of interpolation. 2

Here is a diagram from the text that illustrates the details of the iterated interpolation. d 0 g f m n c 1 c(t) c 0 h e 0 f = (1 - t) c 0 + t d 0 g = (1 - t) d 0 + t e 0 h = (1 - t) e 0 + t c 1 m = (1 - t) f + t g 3

n = (1 - t) g + t h c(t) = (1 - t) m + t n Back-substituting gives c(t) = c 0 (1 - t) 3 + 3 d 0 t (1 - t) 2 + 3 e 0 t 2 (1 - t) + c 1 t 3 Catmull-Rom Splines One common technique for constructing more complex curves is to break the curve into segments and then use a Bezier curve to construct each of the segments. One thing we usually try to do when applying this approach is to make sure that the segments join smoothly. In the first example below I have constructed a pair of Bezier curves that share a common end point. The curves do not join smoothly at the common point. To get the curves to join more smoothly, it is helpful to constrain the two control points on either side of the common point to be colinear. The Catmull-Rom algorithm couples this idea with a recipe to determine a slope for the colinear control points. Here are the details. We seek to construct a curve that passes through a set of points c 1 to c n. We do this by constructing Bezier curves that join each pair of points in the list. Where the Bezier curves join up we place the Bezier control points on either side of the join on a line whose slope is equal to the slope of the line connecting the points on either side of the join. 4

c 3 c 2 c 1 c 4 c 0 Here are the mathematical details from the text, showing how to construct the slope of the colinear segment and how to actually compute the locations of the control points to achieve the desired effect. c (i) = c i + 1 - c i-1 2 d i = 6 1 ( c i+1 - c i-1 ) + c i e i = - 6 1 (c i+2 - c i ) + c i+1 Multiple Dimensions Sample points become c i = ( c i,1, c i,2, c i,3 ) We string together the sample points in each coordinate to make a curve c (t) = (c 1 (t), c 2 (t), c 3 (t)) 5

c 2 c 1 c 6 c 7 c 3 c 5 c 0 c 4 Catmull-Rom Curves in Quaternion Space 1. As before, set up a set of points in quaternion space you would like to run a spline curve through. 2. Use these formulas to compute the control points: d i = (c i+1 c i-1-1 ) 1/6 c i e i = (c i+2 c i -1 ) -1/6 c i+1 3. To construct the Bezier curves, replace linear interpolations with slerps: f = (1-t) c 0 + t d 0 f = slerp(c 0, d 0, t) 6