250 likes | 733 Views
Parametric Curves & Surfaces. Introduction to Computer Graphics CSE 470/598 Arizona State University. Dianne Hansford. Overview. What is a parametric curve/surface? Why use parametric curves & surfaces? Bézier curves & surfaces NURBS Trimmed surfaces OpenGL library.
E N D
Parametric Curves & Surfaces Introduction to Computer Graphics CSE 470/598 Arizona State University Dianne Hansford
Overview • What is a parametric curve/surface? • Why use parametric curves & surfaces? • Bézier curves & surfaces • NURBS • Trimmed surfaces • OpenGL library
What is a parametric curve? Recall functions from calculus ... Example: y = 2x – 2x2 To illustrate, we plot graph of function x 2x – 2x2 x y = Parametric curves give us more flexibility
What is a parametric curve? 2D parametric curve takes the form x y f(t) g(t) Where f(t) and g(t) are functions of t = Example: Line thru points a and b (1-t) ax + t bx (1-t) ay+ t by x y = Mapping of the real line to 2D: here t in [0,1] line segment a,b
What is a parametric curve? 3D curves defined similarly x y z f(t) g(t) h(t) = Example: helix x y z cos(t) sin(t) t =
Bézier Curves Polynomial parametric curves f(t), g(t), h(t) are polynomial functions Bézier curve b(t) Bézier control points bi Bézier polygon Curve mimics shape of polygon t in [0,1] maps to curve “between” polygon b(0) = b0 and b(1) = bn figure: degree n=3 (cubic)
Bézier Curves Examples linear: b(t) = (1-t) b0 + t b1 n=1 quadratic: b(t) = (1-t)2b0 + 2(1-t)t b1 + t2b2 n=2 cubic: b(t) = (1-t)3b0 + 3(1-t)2 t b1 + 3(1-t)t2b2 + t3b3 n=3 Bernstein basis Bin (t) = {n!/(n-i)! i!} (1-t)n-i ti
Bézier Curves Bézier points and Bernstein basis • Nice, intuitive method to create curves • Variable display resolution • Minimal storage needs
Bézier Curves Bézier points and Bernstein basis nice, intuitive method to create curves Compare to Monomial basis: 1, t, t2, t3 ,.... ex: quadratic a(t) = a0 + t a1 + t2a2 a0 is point on curve a1 is first derivative vector a2 is second derivative vector Not very practical to design curves with! at t=0
Bézier Curves local and global parameter intervals Piecewise Bézier curves global parameter u e.g., time Each curve evaluated for t in [0,1] [u0,u1] If specify u in global space then must find t in local space [u1,u2] t = (u-u0) / (u1-u0) figure: 2 quadratic curves
Bézier Curves Piecewise Bézier curves Conditions to create a smooth transition Filled squares are “junction” Bezier points-- start/endpoint of a curve
Bézier Curves in OGL Basic steps: • Define curve by specifying degree, control points and parameter space [u0,u1] • Enable evaluator • Call evaluator with parameter u in [u0, u1] glMap1*() Autocreate uniformly spaced u:glMapGrid1*() glEvalMesh1() Specify each u: glEvalCoord1*() or Color and texture available too!
Bézier Curve Evaluation de Casteljau algorithm another example of repeated subdivision On each polygon leg, construct a point in theratio t : (1-t) bn0(t) is point on curve figure: n=3
What is a parametric surface? 3D parametric surface takes the form Where f,g,h are bivariate functions of u and v x y z f(u,v) g(u,v) h(u,v) = Example: x(u,v) = u v u2 + v2 mapping u,v-space to 3-space; this happens to be a function too
Bézier Surface (Patch) Polynomial parametric surface f(u,v), g(u,v), h(u,v) are polynomial functions written in the Bernstein basis Bézier surface b(u,v) Bézier control points bij Bézier control net
Bézier Surface Structure b33 b03 (1,1) b30 v v u (0,0) b00 u
Bézier Surface Properties • boundary curves • lie on surface • boundary curves • defined by • boundary polygons
Bézier Surface Properties • Nice, intuitive method for creating surfaces • Variable display resolution • Minimal storage
Bézier Surface Multiple patches connected smoothly Conditions on control netsimilar to curves … difficult to do manually
Bézier Surface Display shaded wireframe OGL: triangles & normals created for you choose direction isoparametric curves OGL:glMap2*, glEvalCoord2* glMapGrid2, glEvalMesh2
NURBS Non-uniform Rational B-splines B-splines are piecewise polynomials One or more Bezier curves /surfaces One control polygon Rational: let’s us represent circles exactly GLU NURBS utility
Trimmed Surfaces Parametric surface with parts of the domain “invisible” Surf Lab domain Jorg Peters’ UFL group GLU Trimmed NURBS utility
References • The Essentials of CAGDby Gerald Farin & DCH, AK Petershttp://eros.cagd.eas.asu.edu/%7Efarin/essbook/essbook.html • Ken Joy’s CAGD notes (UC Davis)http://graphics.cs.ucdavis.edu/CAGDNotes/homepage.html • Jorg Peters’ UFL SurfLab grouphttp://www.cise.ufl.edu/research/SurfLab/index.html • OpenGL Red Book – Chapter 12