parametric curves surfaces
DESCRIPTION
schoolTRANSCRIPT
Parametric Curves & Surfaces
Introduction to Computer GraphicsCSE 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
Parametric curvesgive us more flexibility
xy = x
2x – 2x2
To illustrate, weplot graph of function
What is a parametric curve?
2D parametric curve takes the formxy
f(t)g(t)
Where f(t) and g(t)are functions of t
=
Example: Line thru points a and bxy
(1-t) ax + t bx(1-t) ay+ t by
=
Mapping of the real line to 2D: here t in [0,1] line segment a,b
What is a parametric curve?
3D curves defined similarlyxyz
f(t)g(t)h(t)
=
Example: helixxyz
cos(t)sin(t)t
=
Bézier CurvesPolynomial parametric curves
f(t), g(t), h(t) are polynomial functions
Bézier curve b(t)Bézier control points biBézier polygon
Curve mimics shape of polygon
t in [0,1] maps to curve “between” polygonb(0) = b0 and b(1) = bn
figure: degree n=3 (cubic)
Bézier CurvesExamples
linear: b(t) = (1-t) b0 + t b1
quadratic: b(t) = (1-t)2 b0 + 2(1-t)t b1 + t2 b2cubic: b(t) = (1-t)3 b0 + 3(1-t)2 t b1 + 3(1-t)t2 b2 + t3 b3
Bernstein basis Bin (t) = {n!/(n-i)! i!} (1-t)n-i ti
n=1
n=2
n=3
Bézier Curves
Bézier CurvesBézier points and Bernstein basisNice, intuitive method to create curves Variable display resolutionMinimal storage needs
Bézier CurvesBézier points and Bernstein basis
Monomial basis: 1, t, t2, t3 ,....ex: quadratic a(t) = a0 + t a1 + t2 a2
a0 is point on curvea1 is first derivative vectora2 is second derivative vector
Not very practical to design curves with!
nice, intuitive method to create curves Compare to
at t=0
Bézier Curveslocal and global parameter intervals
Piecewise Bézier curves global parameter u e.g., time
[u0,u1]
[u1,u2]
Each curve evaluated for t in [0,1]
If specify u in global spacethen must find t in local space
t = (u-u0) / (u1-u0)figure: 2 quadratic curves
Bézier CurvesPiecewise Bézier curves
Conditions to create a smooth transition
Filled squares are “junction” Bezier points-- start/endpoint of a curve
Bézier Curves in OGLBasic steps:
Define curve by specifying degree, control points and parameter space [u0,u1]
Enable evaluatorCall evaluator with parameter u in [u0, u1]
Specify each u:glEvalCoord1*()
Autocreate uniformly spaced u:glMapGrid1*()glEvalMesh1()
glMap1*()
or
Color and texture available too!
Bézier Curve Evaluationde 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 formxyz
f(u,v)g(u,v)h(u,v)
Where f,g,h are bivariate functions of u and v
=
mapping u,v-space to 3-space;this happens to be a function too
Example: x(u,v) =
uvu2 + v2
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 bijBézier control net
Bézier SurfaceStructure
v
(0,0)
u
(1,1)
b00
b33
b30
b03
uv
Bézier SurfacePropertiesboundary curveslie on surface
boundary curvesdefined by boundary polygons
Bézier SurfaceProperties
Nice, intuitive method for creating surfaces
Variable display resolution
Minimal storage
Bézier SurfaceMultiple patches connected smoothly
Conditions on control netsimilar to curves …difficult to do manually
Bézier SurfaceDisplay
wireframe shaded
choose directionisoparametric curves
OGL: glMap2*, glEvalCoord2*glMapGrid2, glEvalMesh2
OGL: triangles & normalscreated for you
NURBSNon-uniform Rational B-splines
B-splines are piecewise polynomialsOne or more Bezier curves /surfacesOne control polygon
Rational: let’s us represent circles exactly
GLU NURBS utility
Trimmed SurfacesParametric surface with parts of the
domain “invisible”
Jorg Peters’ UFL group
GLU Trimmed NURBS utility
SurfLab
domain
References The Essentials of CAGD
by 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