Parametric Curves & Surfaces Introduction to Computer Graphics CSE 470/598 Arizona State University...
-
Upload
dominic-wheeler -
Category
Documents
-
view
234 -
download
0
Transcript of Parametric Curves & Surfaces Introduction to Computer Graphics CSE 470/598 Arizona State University...
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
=x2x – 2x2
To illustrate, weplot graph of function
What is a parametric curve?
2D parametric curve takes the form
xy
f(t)g(t)
Where f(t) and g(t)are functions of t
=
Example: Line thru points a and b
xy
(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 similarly
xyz
f(t)g(t)h(t)
=
Example: helix
xyz
cos(t)sin(t)t
=
Bézier Curves
Polynomial parametric curvesf(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 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 Curves
Bézier points and Bernstein basis
Nice, intuitive method to create curves Variable display resolutionMinimal storage needs
Bézier Curves
Bézier points and Bernstein basis
Monomial basis: 1, t, t2, t3 ,....
ex: quadratic a(t) = a0 + t a1 + t2 a2
a0 is point on curve
a1 is first derivative vector
a2 is second derivative vector
Not very practical to design curves with!
nice, intuitive method to create curves
Compare to
at t=0
Bézier Curves
local 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 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 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 Evaluation
de Casteljau algorithmanother example of repeated subdivision
On each polygon leg,construct a point in theratio t : (1-t)
bn0(t) is point on
curvefigure: n=3
What is a parametric surface?
3D parametric surface takes the form
xyz
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) =
uv
u2 + 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 bij
Bézier control net
Bézier Surface
Structure
v
(0,0)
u
(1,1)
b00
b33
b30
b03
uv
Bézier Surface
Properties
boundary curveslie on surface
boundary curvesdefined 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
wireframe shaded
choose directionisoparametric curves
OGL: glMap2*, glEvalCoord2*
glMapGrid2, glEvalMesh2
OGL: triangles & normalscreated for you
NURBS
Non-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
Surf
Lab
domain
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