130 likes | 155 Views
CS 395: Adv. Computer Graphics. Overview Parametric Surfaces Watt: Chapter 3 + readings Jack Tumblin jet@cs.northwestern.edu. Curves and Surfaces. Basic Problem: Polygons are easy, fast, renderable, BUT Polygons meshes are not smooth; no derivatives: poor silhouettes, reflections...
E N D
CS 395: Adv. Computer Graphics Overview Parametric Surfaces Watt: Chapter 3 + readings Jack Tumblin jet@cs.northwestern.edu
Curves and Surfaces Basic Problem: • Polygons are easy, fast, renderable, BUT • Polygons meshes are not smooth;no derivatives:poor silhouettes, reflections... • Polygons can only approximate curves, • Polygons are less compact: Previous methods: metal/wood 'splines' ... (see Farin book)
What's a Parametric Curve? Vary one or more 'parameter' to explore a curve or surface Example: parametric circle, in z=1 plane: x(u) = R*cos(u) y(u) = R*sin(u) z(u) = 1 z y x
Background • Many Historical Parametric Curve Makers: • Lissajous Curves, http://kosmoi.com/Science/Mathematics/Graphs/Encyclo/ • Spirographs, http://math.dartmouth.edu/~dlittle/java/SpiroGraph/ • Harmonographs, http://astronomy.swin.edu.au/~pbourke/curves/harmonograph/ • Epicycles, etc.http://www.astronomynotes.com/history/epicycle.htm
Background • Few found use in design until computers: • Paul DeCastlejau (1950s, Citroen) • Pierre Bezier (1960s, Renault) • 70's, 80's explosion of Comp. Geometry; • GREAT results: now faded as research area
OUTLINE • Historical Parametrics: transcendentals • in CG: mostly polynomial • Key Idea 1: blending points...
OUTLINE • Key Idea 2: Linear Interpolation, Nesting • Paul DeCastlejau (1950s, Citroen) • Pierre Bezier (1960s, Renault) • http://www.ibiblio.org/e-notes/Splines/Bezier.htm How can we connect multiple Bezier curves? How can we make a Bezier surface?
Efficient! 9 unique Bezier Patches (some were mirrored around z axis: total is ?17?)
‘Digital’ Image: a 2D Grid of Numbers • NO intrinsic meaning—use it for anything: reflectance, transparency, illumination, normal direction, material, velocity... v v u u
OUTLINE • Key Idea 3: Generalize: Blending Fcns., in Matrix form • Uniform B-splines • Other Basis Functions • Non-uniform? 'Duplicate Control Pts' http://www.ibiblio.org/e-notes/Splines/Bezier.htm
Useful Goals • Continuity: are all derivatives smooth? w.r.t. parameters; w.r.t. space; • Global / Local Control: move 1 control pt: does entire curve change? • Convex Hull: is curve within its control pts? • Interpolating:does curve touch desired pts? • Affine Invariant; Projective Invariant: transform control pts, then draw curve, OR draw curve, then transform, SAME result!
Useful Goals • Invertible; find ray-surface intersection in 3D (for rendering, shading) in u,v parameters (for texture, etc.) find surface-surface intersectionin 3D (for 'trimming', fairing, etc.) in u,v parameters
Further Sources • Endless books on curves and surfaces:G. Farin, "Curves and Surfaces for CAGD" (recommended; most rigorous & complete) • On-line tutorials, Java Applets