Copyright © COMP371 Computer Graphics Instructors Administrative

Copyright © COMP371 Computer Graphics Instructors Administrative

COMP371 COMPUTER GRAPHICS SESSION 9 SPLINES Copyright © COMP371 Computer Graphics Instructors Administrative ▪Solution to Programming Assignment #1 ▪ At the end of today’s lecture ▪Programming Assignment #2 ▪ Deadline: 17th October 2017 ▪ QUIZ #1 - 10th October 2017 2 Copyright © COMP371 Computer Graphics Instructors Lecture Overview ▪Review of last class ▪ Hierarchical Modeling - Blender/Maya demo ▪Splines ▪Hermite Splines ▪Bezier Splines ▪Catmull-Rom Splines ▪Other Cubic Splines 3 Copyright © COMP371 Computer Graphics Instructors Modeling Complex Shapes ▪ We want to build models of very complicated objects ▪ Complexity is achieved using simple pieces ▪ polygons, ▪ parametric curves and surfaces ▪ implicit curves and surfaces ▪ In this lecture we will focus on parametric curves Credi t 4 Copyright © COMP371 Computer Graphics Instructors Curve Representation Requirements ▪ What do we need from curves in Computer Graphics? ▪ Local control of shape (so that it’s easy to build and modify) ▪ Stability ▪ Smoothness and continuity ▪ Ability to evaluate derivatives ▪ Ease of rendering 5 Copyright © COMP371 Computer Graphics Instructors Curve Representations ▪ Explicit: y = f(x) ▪ Must be a function (single valued) ▪ Limitation: vertical lines, circle? 6 Copyright © COMP371 Computer Graphics Instructors Curve Representations ▪ Explicit: y = f(x) ▪ Must be a function (single valued) ▪ Limitation: vertical lines, circle? ▪ Implicit: f(x,y) = 0 ▪ Pros: y can be a multiple valued function of x ▪ Cons: Hard to specify, modify, control 7 Copyright © COMP371 Computer Graphics Instructors Curve Representations ▪ Explicit: y = f(x) ▪ Must be a function (single valued) ▪ Limitation: vertical lines, circle? ▪ Implicit: f(x,y) = 0 ▪ Pros: y can be a multiple valued function of x ▪ Cons: Hard to specify, modify, control ▪ Parametric: (x,y) = (f(u),g(u)) ▪ Pros: Easy to specify, modify, control ▪ Cons: Extra “hidden” variable u, i.e. the parameter 8 Copyright © COMP371 Computer Graphics Instructors Parameterization of a Curve ▪ Parameterization of a curve: how a change in u moves you along a given curve in xyz space ▪ Parameterization is not unique. It can be slow, fast, with continuous/discontinuous speed, clockwise (CW) or CCW, etc 9 Copyright © COMP371 Computer Graphics Instructors Interpolation vs Approximation ▪ There are two ways to “connect the dots”: ▪ Interpolation → polynomial sections are fitted so that all the control points are connected ▪ Approximation → polynomial curve is plotted so that some, or all, of the control points are not on the curve path 10 Copyright © COMP371 Computer Graphics Instructors Polynomial Interpolation ▪ An nth degree polynomial fits a curve to n+1 points ▪ called Lagrange Interpolation ▪ result is a curve that is too wiggly, change to any control point affects the entire curve i.e. non-local ▪ this method is poor ▪ We usually want the curve to be as smooth as possible ▪ minimize wiggles ▪ high-degree polynomials are bad 11 Copyright © COMP371 Computer Graphics Instructors Splines: Piecewise Polynomials ▪ A spline is a piecewise polynomial ▪ Curve is broken into consecutive segments ▪ Each segment is a low-degree polynomial interpolating i.e. passing through the control points ▪ Cubic piecewise polynomials are the most common: ▪ They are the lowest order polynomials that ▪ interpolate two points and ▪ allow the gradient at each point to be defined (C1 continuity possible) ▪ Piecewise definition gives local control ▪ Higher or lower degrees are possible, of course 12 Copyright © COMP371 Computer Graphics Instructors Piecewise Polynomials ▪ Spline: many polynomials pieced together ▪ Want to make sure they fit together nicely curvature: a measure of how rapidly a curve is bending at a point 13 Copyright © COMP371 Computer Graphics Instructors Splines ▪ Types of splines: ▪ Hermite Splines ▪ Bezier Splines ▪ Catmull-Rom Splines ▪ Natural Cubic Splines ▪ B-Splines ▪ NURBS ▪ Splines can be used to model both curves and surfaces 14 Copyright © COMP371 Computer Graphics Instructors Cubic Curves in 3D ▪ Cubic polynomial: ▪ p(u) = au3+bu2+cu+d = [u3 u2 u 1] [a b c d]T ▪ a,b,c,d are 3-vectors, u is a scalar ▪ Three cubic polynomials, one for each coordinate: 3 2 ▪ x(u) = axu + bxu + cxu + dx 3 2 ▪ y(u) = ayu + byu + cyu + dy 3 2 ▪ z(u) = azu + bzu + czu + dz ▪ In matrix notation: ▪ Or simply: p = [u3 u2 u 1] A 15 Copyright © COMP371 Computer Graphics Instructors Cubic Hermite Splines ▪ Interpolating piecewise cubic polynomial ▪ We want a way to specify the end points and the tangent at the end points! 16 Copyright © COMP371 Computer Graphics Instructors Deriving Hermite Splines ▪ Four constraints: value and slope (in 3-D, position and tangent vector) at beginning and end of interval [0,1] : p(0) = p1 = (x1 , y1 , z1) p(1) = p = (x , y , z ) 2 2 2 2 user p’(0) = p’1 = (x’1 , y’1 , z’c1o)nstraints p’(1) = p’2 = (x’2 , y’2 , z’2) ▪ Assume cubic form: p(u) = au3 + bu2 + cu + d ▪ Four unknowns: a, b, c, d 17 Copyright © COMP371 Computer Graphics Instructors Deriving Hermite Splines cont’d ▪ Assume cubic form: p(u) = au3 + bu2 + cu + d p1 = p(0) = d p2 = p(1) = a + b + c + d p’1 = p’(0) = c p’2 = p’(1) = 3a + 2b + c ▪ Linear system: 12 equations for 12 unknowns (however, can be simplified to 4 equations for 4 unknowns) ▪ Unknowns: a, b, c, d (each of a, b, c, d is a 3-vector) 18 Copyright © COMP371 Computer Graphics Instructors Deriving Hermite Splines 19 Copyright © COMP371 Computer Graphics Instructors The Cubic Hermite Spline Equation ▪ After inverting the 4x4 matrix, we obtain: ▪ This form is typical for splines ▪ basis matrix and meaning of control matrix change with the spline type 20 Copyright © COMP371 Computer Graphics Instructors Four Basis Functions for Hermite Splines ▪ Every cubic Hermite spline is a linear combination (blend) of these 4 functions 21 Copyright © COMP371 Computer Graphics Instructors Piecing Together Hermite Splines ▪ Easy to make a multi-segment Hermite Spline: ▪ each segment is specified by a cubic Hermite curve ▪ just specify the position and tangent at each “joint” (called knot) ▪ the pieces fit together with matched positions and first derivatives ▪ gives C1 continuity ▪ local control 22 Copyright © COMP371 Computer Graphics Instructors Hermite Splines in Adobe Illustrator 23 Copyright © COMP371 Computer Graphics Instructors Bezier Splines ▪ Variant of the Hermite spline ▪ Interpolates endpoints ▪ Approximation of other two control points ▪ Instead of endpoints and tangents, four control points ▪ points P1, P4 are on the curve (end points) → p(0) = P1 and p(1) = P4 ▪ points P2, P3 are off the curve ▪ p’(0) = 3(P2-P1) ▪ p’(1) = 3(P4-P3) ▪ Basis matrix is derived from the Hermite basis (or from scratch) ▪ Convex Hull property: curve contained within the convex hull of control points ▪ Scale factor “3” is chosen to make “velocity” approximately constant 24 Copyright © COMP371 Computer Graphics Instructors The Bezier Spline Matrix 25 Copyright © COMP371 Computer Graphics Instructors Bezier Blending Functions ▪ Also known as the order 4, degree 3 Bernstein polynomials ▪ Nonnegative, sum to 1 ▪ The entire curve lies inside the polyhedron bounded by the control points 26 Copyright © COMP371 Computer Graphics Instructors DeCasteljau Construction ▪ Efficient algorithm to evaluate Bezier splines ▪ Similar to Horner rule for polynomials ▪ Can be extended to interpolations of 3D rotations 27 Copyright © COMP371 Computer Graphics Instructors Catmull-Rom Splines ▪ With Hermite Splines, the designer must arrange for consecutive tangents to be co-linear, to get C1 continuity. Similar for Bezier. This gets tedious. ▪ Catmull-Rom: an interpolating cubic spline with built in C1 continuity. ▪ Compared to Hermite/Bezier: fewer control points required, but less freedom 28 Copyright © COMP371 Computer Graphics Instructors Constructing the Catmull-Rom Spline ▪ Suppose we are given n control points in 3-D: p1, p2, …, pn. ▪ For a Catmull-Rom spline, we set the tangent at pi to s*(pi+1 – pi-1) for i=2, ..., n-1, for some s (often s=0.5) ▪ s is tension parameter: determines the magnitude (but not direction!) of the tangent vector at point pi ▪ What about endpoint tangents? Use extra control points p0, pn+1. ▪ Now we have positions and tangents at each knot. This is a Hermite specification → use Hermite formulas to derive the spline. ▪ Note: curve between pi and pi+1 is completely determined 29 by pi-1, pi, pi+1, pi+C2op.yright © COMP371 Computer Graphics Instructors Catmull-Rom Spline Matrix ▪ Derived in a way similar to Hermite and Bezier ▪ Parameter s is typically set to s = 0.5 30 Copyright © COMP371 Computer Graphics Instructors Spline with More Continuity? ▪ So far, only C1 continuity ▪ How could we get C2 continuity at control points? ▪ Possible answers: ▪ Use higher degree polynomials ▪ degree 4 = quadtric, degree 5 = quintic, etc but these get computationally expensive, and sometimes wiggly ▪ Give up local control → natural cubic splines ▪ A change to any control point affects the entire curve ▪ Give up interpolation → cubic b-splines ▪ Curve goes near, but not through the control points 31 Copyright © COMP371 Computer Graphics Instructors Comparison of Basic Cubic Splines 32 Copyright © COMP371 Computer Graphics Instructors Natural Cubic Splines ▪ If you want 2nd derivatives at joints to match up, the resulting curves are called natural cubic splines ▪ It’s a simple computation to solve for the cubics' coefficients ▪ See Numerical Recipes in C book for code ▪ Finding all the right weights is a global calculation

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    43 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us