Parametric Surfaces 3D Object Representations3D Object RepresentationsParametric SurfacesOutlineOutlineParametric CurvesParametric CurvesParametric curvesParametric curvesParametric curvesParametric curvesParametric curvesParametric curvesParametric Polynomial CurvesParametric Polynomial CurvesPiecewise Parametric Polynomial CurvesCubic SplinesOutlineCubic B-SplinesCubic B-Spline Blending FunctionsCubic B-Spline Blending FunctionsCubic B-Spline Blending FunctionsCubic B-Spline Blending FunctionsCubic B-Spline Blending FunctionsCubic B-Spline Blending FunctionsCubic B-Spline Blending FunctionsCubic B-Spline Blending FunctionsCubic B-Spline Blending FunctionsOutlineCubic BézierCubic Bézier CurvesCubic Bézier CurvesBasic properties of Bézier CurvesBézier CurvesEnforcing Bézier Curve ContinuityOutlineParametric SurfacesParametric SurfacesParametric SurfacesParametric SurfacesPiecewise Polynomial Parametric SurfacesParametric PatchesParametric PatchesParametric PatchesParametric PatchesParametric PatchesParametric PatchesParametric Bicubic PatchesB-Spline PatchesBézier PatchesBézier Patches Bézier SurfacesBézier SurfacesBézier SurfacesParametric SurfacesComparisonParametric Surfaces COS 4263D Object Representations • Raw data Voxels Point cloud Range image Polygons • Surfaces Mesh Subdivision Parametric Implicit • Solids o Octree o BSP tree o CSG o Sweep • High-level structures o Scene graph o Application specific3D Object Representations • Raw data Voxels Point cloud Range image Polygons • Surfaces Mesh Subdivision Parametric Implicit • Solids o Octree o BSP tree o CSG o Sweep • High-level structures o Scene graph o Application specificParametric Surfaces • Applications Design of smooth surfaces in cars, ships, etc. H&B Figure 10.46Outline • Parametric curves Cubic B-Spline Cubic Bézier • Parametric surfaces Bi-cubic B-Spline Bi-cubic BézierOutline Parametric curves Cubic B-Spline Cubic Bézier • Parametric surfaces Bi-cubic B-Spline Bi-cubic BézierParametric Curves • Defined by parametric functions: x = fx(u) y = fy(u) • Example: line segment H&B Figure 10.10 ]1..0[)1()()1()(1010∈+−=+−=uuyyuufuxxuufyxP0 P1 uParametric Curves • Defined by parametric functions: x = fx(u) y = fy(u) • Example: ellipse H&B Figure 10.10 ]1..0[sin)(cos)(22∈==urufrufuuyyxxππx y u rx ryParametric curves How to easily define arbitrary curves? x = fx(u) y = fy(u) uParametric curves How to easily define arbitrary curves? x = fx(u) y = fy(u) Use functions that “blend” control points x = fx(u) = V0x*(1 - u) + V1x*u y = fy(u) = V0y*(1 - u) + V1y*u V0 V1 uParametric curves More generally: xniiViuBux *)()(0∑==yniiViuBuy *)()(0∑==V0 V1 V2 V3 x(u), y(u)Parametric curves What B(u) functions should we use? xniiViuBux *)()(0∑==yniiViuBuy *)()(0∑==Parametric curves What B(u) functions should we use? xniiViuBux *)()(0∑==yniiViuBuy *)()(0∑==B0 B1 V0 V1 u 1 1 0 0 1 1 0 0 uParametric curves What B(u) functions should we use? xniiViuBux *)()(0∑==yniiViuBuy *)()(0∑==B0 u 1 0 2 0 1 V0 V1 V2 B1 u 1 0 B2 u 1 0 2 0 1 2 0 1Parametric Polynomial Curves • Polynomial blending functions: • Advantages of polynomials Easy to compute Infinitely continuous Easy to derive curve properties V0 V1 V2Parametric Polynomial Curves • Polynomial blending functions: • What degree polynomial? Easy to compute Easy to control Expressive V0 V1 V2 V0 V1 V2Piecewise Parametric Polynomial Curves • Splines: Split curve into segments Each segment defined by low-order polynomial blending subset of control vertices • Motivation: Same blending functions for every segment Prove properties from blending functions Provides local control & efficiency • Challenges How choose blending functions? How determine properties? V1 V2 V3 V5 V6 V0 V4Cubic Splines • Some properties we might like to have: Local control Continuity Interpolation? Convex hull? V1 V2 V3 V5 V6 V0 V4 Properties determine blending functions Blending functions determine properties ∑==mjjjiuauB0)(Outline • Parametric curves Cubic B-Spline Cubic Bézier • Parametric surfaces Bi-cubic B-Spline Bi-cubic BézierCubic B-Splines • Properties: Local control C2 continuity at joints (infinitely continuous within each piece) Approximating Convex hull V1 V2 V3 V4 V5 V0Cubic B-Spline Blending Functions Blending functions: ∑==mjjjiuauB0)(b-0 1 1 0 0 b-1 1 1 0 0 b-2 1 1 0 0 b-3 1 1 0 0 V1 V2 V3 V4 V5 V0Cubic B-Spline Blending Functions • How derive blending functions? Cubic polynomials Local control C2 continuity Convex hull V1 V2 V3 V4 V5 V0 u 1 0 V0 V1 V2 V3 V4 V5 b-3 b-2 b-1 b-0Cubic B-Spline Blending Functions • Four cubic polynomials for four vertices 16 variables (degrees of freedom) Variables are ai, bi, ci, di for four blending functions V1 V2 V3 V4 V5 V0 31323333212223221112131101020300)()()()(ducubuaubducubuaubducubuaubducubuaub+++=+++=+++=+++=−−−−Cubic B-Spline Blending Functions • C2 continuity implies 15 constraints Position of two curves same Derivative of two curves same Second derivatives same V1 V2 V3 V4 V5 V0Cubic B-Spline Blending FunctionsCubic B-Spline Blending Functions • Solving the system of equations yields:Cubic B-Spline Blending Functions • In matrix form: ( )−−−−=321023 0141030303631331 611)(VVVVuuuuQCubic B-Spline Blending Functions In plot form: ∑==mjjjiuauB0)(b-0 1 1 0 0 b-1 1 1 0 0 b-2 1 1 0 0 b-3 1 1 0 0 V1 V2 V3 V4 V5 V0Cubic B-Spline Blending Functions • Blending functions imply properties: Local control Approximating C2 continuity Convex hull V1 V2 V3 V4 V5 V0 u 1 0 V0 V1 V2 V3 V4 V5Outline • Parametric curves Cubic B-Spline Cubic Bézier • Parametric surfaces Bi-cubic B-Spline Bi-cubic BézierCubic Bézier • Developed around 1960 by both Pierre Bézier (Renault) Paul de Casteljau (Citroen) • Properties: Local control Continuity depends on control points Interpolating (every third) V1 V2 V3 V4 V5 V6 V0 Properties determine blending functions Blending functions determine propertiesCubic Bézier Curves
View Full Document