You are on page 1of 10
Last Time: Curves & Surfaces • • • • • • • Expected value and variance Monte-Carlo in graphics Importance sampling Stratified sampling Path Tracing Irradiance Cache Photon Mapping MIT EECS 6.837, Durand and Cutler Questions? MIT EECS 6.837, Durand and Cutler Today • Motivation – Limitations of Polygonal Models – Gouraud Shading & Phong Normal Interpolation – Some Modeling Tools & Definitions • Curves • Surfaces / Patches • Subdivision Surfaces MIT EECS 6.837, Durand and Cutler Limitations of Polygonal Meshes • • • • MIT EECS 6.837, Durand and Cutler Can We Disguise the Facets? Planar facets (& silhouettes) Fixed resolution Deformation is difficult No natural parameterization (for texture mapping) MIT EECS 6.837, Durand and Cutler MIT EECS 6.837, Durand and Cutler 1 Gouraud Shading Phong Normal Interpolation (Not Phong Shading) • Instead of shading with the normal of the triangle, shade the vertices with the average normal and interpolate the color across each face • Interpolate the average vertex normals across the face and compute per-pixel shading Illusion of a smooth surface with smoothly varying normals Must be renormalized MIT EECS 6.837, Durand and Cutler 1K facets MIT EECS 6.837, Durand and Cutler 10K facets 1K smooth 10K smooth Better, but not always good enough • Still low, fixed resolution (missing fine details) • Still have polygonal silhouettes • Intersection depth is planar (e.g. ray visualization) • Collisions problems for simulation • Solid Texturing problems • ... MIT EECS 6.837, Durand and Cutler Some Non-Polygonal Modeling Tools MIT EECS 6.837, Durand and Cutler Continuity definitions: • C0 continuous – curve/surface has no breaks/gaps/holes • G1 continuous Extrusion Surface of Revolution – tangent at joint has same direction • C1 continuous – curve/surface derivative is continuous – tangent at join has same direction and magnitude • Cn continuous Spline Surfaces/Patches Quadrics and other implicit polynomials MIT EECS 6.837, Durand and Cutler – curve/surface through nth derivative is continuous – important for shading MIT EECS 6.837, Durand and Cutler 2 Questions? Today • Motivation • Curves – What's a Spline? – Linear Interpolation – Interpolation Curves vs. Approximation Curves – Bézier – BSpline (NURBS) • Surfaces / Patches • Subdivision Surfaces MIT EECS 6.837, Durand and Cutler MIT EECS 6.837, Durand and Cutler Definition: What's a Spline? Interpolation Curves / Splines • Smooth curve defined by some control points • Moving the control points changes the curve Interpolation Bézier (approximation) BSpline (approximation) www.abm.org MIT EECS 6.837, Durand and Cutler MIT EECS 6.837, Durand and Cutler Linear Interpolation Interpolation Curves • Simplest "curve" between two points • Curve is constrained to pass through all control points • Given points P0, P1, ... Pn, find lowest degree polynomial which passes through the points Q(t) = Spline Basis Functions a.k.a. Blending Functions MIT EECS 6.837, Durand and Cutler x(t) = an-1tn-1 + .... + a2t2 + a1t + a0 y(t) = bn-1tn-1 + .... + b2t2 + b1t + b0 MIT EECS 6.837, Durand and Cutler 3 Interpolation vs. Approximation Curves Interpolation vs. Approximation Curves • Interpolation Curve – over constrained → lots of (undesirable?) oscillations • Approximation Curve – more reasonable? Interpolation Approximation curve must pass through control points curve is influenced by control points MIT EECS 6.837, Durand and Cutler MIT EECS 6.837, Durand and Cutler Cubic Bézier Curve Cubic Bézier Curve • 4 control points • Curve passes through first & last control point • Curve is tangent at P0 to (P0-P1) and at P4 to (P4-P3) • de Casteljau's algorithm for constructing Bézier curves t t t t t t A Bézier curve is bounded by the convex hull of its control points. MIT EECS 6.837, Durand and Cutler Cubic Bézier Curve MIT EECS 6.837, Durand and Cutler Connecting Cubic Bézier Curves Asymmetric: Curve goes through some control points but misses others • • • • Bernstein Polynomials MIT EECS 6.837, Durand and Cutler How can we guarantee C0 continuity? How can we guarantee G1 continuity? How can we guarantee C1 continuity? Can’t guarantee higher C2 or higher continuity MIT EECS 6.837, Durand and Cutler 4 Connecting Cubic Bézier Curves • Where is this curve – C0 continuous? – G1 continuous? – C1 continuous? • What’s the relationship between: – the # of control points, and – the # of cubic Bézier subcurves? MIT EECS 6.837, Durand and Cutler Higher-Order Bézier Curves • > 4 control points • Bernstein Polynomials as the basis functions • Every control point affects the entire curve – Not simply a local effect – More difficult to control for modeling MIT EECS 6.837, Durand and Cutler Cubic BSplines Cubic BSplines • ≥ 4 control points • Locally cubic • Curve is not constrained to pass through any control points • Iterative method for constructing BSplines A BSpline curve is also bounded by the convex hull of its control points. MIT EECS 6.837, Durand and Cutler Cubic BSplines MIT EECS 6.837, Durand Cutler Shirley, Fundamentals of and Computer Graphics Cubic BSplines • Can be chained together • Better control locally (windowing) MIT EECS 6.837, Durand and Cutler MIT EECS 6.837, Durand and Cutler 5 Connecting Cubic BSpline Curves BSpline Curve Control Points • What’s the relationship between – the # of control points, and – the # of cubic BSpline subcurves? Default BSpline BSpline with Discontinuity Repeat interior control point MIT EECS 6.837, Durand and Cutler BSpline which passes through end points Repeat end points MIT EECS 6.837, Durand and Cutler Bézier is not the same as BSpline Bézier is not the same as BSpline • Relationship to the control points is different Bézier BSpline Bézier BSpline MIT EECS 6.837, Durand and Cutler MIT EECS 6.837, Durand and Cutler Converting between Bézier & BSpline new BSpline control points to match Bézier original control points as Bézier new Bézier control points to match BSpline MIT EECS 6.837, Durand and Cutler original control points as BSpline Converting between Bézier & BSpline • Using the basis functions: MIT EECS 6.837, Durand and Cutler 6 NURBS (generalized BSplines) Questions? • BSpline: uniform cubic BSpline • NURBS: Non-Uniform Rational BSpline – non-uniform = different spacing between the blending functions, a.k.a. knots – rational = ratio of polynomials (instead of cubic) MIT EECS 6.837, Durand and Cutler MIT EECS 6.837, Durand and Cutler Today Tensor Product • Motivation • Spline Curves • Spline Surfaces / Patches • Of two vectors: – Tensor Product – Bilinear Patches – Bezier Patches • Subdivision Surfaces • Similarly, we can define a surface as the tensor product of two curves.... Farin, Curves and Surfaces for MIT EECS 6.837, Durand and Cutler Bilinear Patch Computer MIT EECS 6.837, Durand and Aided Cutler Geometric Design Bilinear Patch • Smooth version of quadrilateral with non-planar vertices... – But will this help us model smooth surfaces? – Do we have control of the derivative at the edges? MIT EECS 6.837, Durand and Cutler MIT EECS 6.837, Durand and Cutler 7 Bicubic Bezier Patch Editing Bicubic Bezier Patches Curve Basis Functions Surface Basis Functions MIT EECS 6.837, Durand and Cutler MIT EECS 6.837, Durand and Cutler Bicubic Bezier Patch Tessellation Modeling with Bicubic Bezier Patches • Assignment 8: Given 16 control points and a tessellation resolution, create a triangle mesh • Original Teapot specified with Bezier Patches resolution: 5x5 vertices resolution: 11x11 vertices resolution: 41x41 vertices MIT EECS 6.837, Durand and Cutler Modeling Headaches MIT EECS 6.837, Durand and Cutler Trimming Curves for Patches • Original Teapot model is not "watertight": intersecting surfaces at spout & handle, no bottom, a hole at the spout tip, a gap between lid & base MIT EECS 6.837, Durand and Cutler MIT EECS 6.837, Durand Cutler Shirley, Fundamentals of and Computer Graphics 8 Questions? Today • • • • • • Bezier Patches? or Review Motivation Spline Curves Spline Surfaces / Patches Subdivision Surfaces • Triangle Mesh? Henrik Wann Jensen MIT EECS 6.837, Durand and Cutler Chaikin's Algorithm MIT EECS 6.837, Durand and Cutler Doo-Sabin Subdivision MIT EECS 6.837, Durand and Cutler http://www.ke.ics.saitama-u.ac.jp/xuz/pic/doo-sabin.gif MIT EECS 6.837, Durand and Cutler Doo-Sabin Subdivision MIT EECS 6.837, Durand and Cutler Loop Subdivision MIT EECS 6.837, Durand Cutler Shirley, Fundamentals of and Computer Graphics 9 Loop Subdivision Questions? • Some edges can be specified as crease edges http://grail.cs.washington.edu/projects/subdivision/ Justin Legakis MIT EECS 6.837, Durand and Cutler Neat Bezier Spline Trick MIT EECS 6.837, Durand and Cutler Next Tuesday: (no class Thursday!) • A Bezier curve with 4 control points: – P0 P1 P2 P3 • Can be split into 2 new Bezier curves: – P0 P’1 P’2 P’3 – P’3 P’4 P’5 P3 A Bézier curve is bounded by the convex hull of its control points. MIT EECS 6.837, Durand and Cutler Animation I: Particle Systems MIT EECS 6.837, Durand and Cutler 10