570 likes | 739 Views
CS-378: Game Technology. Lecture #5: Curves and Surfaces Prof. Okan Arikan University of Texas, Austin Thanks to James O’Brien, Steve Chenney, Zoran Popovic, Jessica Hodgins V2005-14-1.1. Administrative. Final Project First deliverable Homework is out. Today.
E N D
CS-378: Game Technology • Lecture #5: Curves and Surfaces • Prof. Okan Arikan • University of Texas, Austin • Thanks to James O’Brien, Steve Chenney, Zoran Popovic, Jessica Hodgins • V2005-14-1.1
Administrative • Final Project • First deliverable • Homework is out
Today • General curve and surface representations • Splines and other polynomial bases • Points
Geometry Representations • Constructive Solid Geometry (CSG) • Parametric • Polygons • Subdivision surfaces • Implicit Surfaces • Point-based Surface
Geometry Representations Object made by CSG Converted to polygons
Geometry Representations Object made by CSG Converted to polygons Converted to implicit surface
Geometry Representations CSG on implicit surfaces
Geometry Representations Point-based surface descriptions Ohtake, et al., SIGGRAPH 2003
Geometry Representations Subdivision surface (different levels of refinement) Images from Subdivision.org
Geometry Representations • Various strengths and weaknesses • Ease of use for design • Ease/speed for rendering • Simplicity • Smoothness • Collision detection • Flexibility (in more than one sense) • Suitability for simulation • many others...
Parametric Representations Curves: Surfaces: Volumes: and so on... Note: a vector function is really n scalar functions
Parametric Rep. Non-unique • Same curve/surface may have multiple formulae
Simple Differential Geometry • Tangent to curve • Tangents to surface • Normal of surface • Also: curvature, curve normals, curve bi-normal, others... • Degeneracies: or
Discretization • Arbitrary curves have an uncountable number of parameters i.e. specify function value at all points on real number line
Discretization • Arbitrary curves have an uncountable number of parameters • Pick complete set of basis functions • Polynomials, Fourier series, etc. • Truncate set at some reasonable point • Function represented by the vector (list) of • The may themselves be vectors
Polynomial Basis • Power Basis The elements of are linearly independant i.e. no good approximation Skipping something would lead to bad results... odd stiffness
Specifying a Curve Given desired values (constraints) how do we determine the coefficients for cubic power basis? For now, assume
Specifying a Curve Given desired values (constraints) how do we determine the coefficients for cubic power basis?
Specifying a Curve Given desired values (constraints) how do we determine the coefficients for cubic power basis?
Specifying a Curve Given desired values (constraints) how do we determine the coefficients for cubic power basis?
Specifying a Curve Given desired values (constraints) how do we determine the coefficients for cubic power basis?
Specifying a Curve Given desired values (constraints) how do we determine the coefficients for cubic power basis? Hermite basis functions
Specifying a Curve Given desired values (constraints) how do we determine the coefficients for cubic power basis? Probably not to scale. Hermite basis functions
Hermite Basis • Specify curve by • Endpoint values • Endpoint tangents (derivatives) • Parameter interval is arbitrary (most times) • Don’t need to recompute basis functions • These are cubic Hermite • Could do construction for any odd degree • derivatives at end points
Cubic Bézier • Similar to Hermite, but specify tangents indirectly Note: all the control points are points in space, no tangents.
Cubic Bézier • Similar to Hermite, but specify tangents indirectly
Cubic Bézier • Plot of Bézier basis functions
Changing Bases • Power basis, Hermite, and Bézier all are still just cubic polynomials • The three bases all span the same space • Like different axes in • Changing basis
Useful Properties of a Basis • Convex Hull • All points on curve inside convex hull of control points • Bézier basis has convex hull property
Useful Properties of a Basis • Invariance under class of transforms • Transforming curve is same as transforming control points • Bézier basis invariant for affine transforms • Bézier basis NOT invariant for perspective transforms • NURBS are though...
Useful Properties of a Basis • Local support • Changing one control point has limited impact on entire curve • Nice subdivision rules • Fast evaluation scheme • Interpolation -vs- approximation
DeCasteljau Evaluation • A geometric evaluation scheme for Bézier
Joining If you change a, b, or c you must change the others But if you change a, b, or c you do not have to change beyond those three. *Local Support*
Tensor-Product Surfaces • Surface is a curve swept through space • Replace control points of curve with other curves
Hermite Surface Bases Plus symmetries...
Hermite Surface Hump Functions Plus symmetries...
A Thought Experiment • Laser scanners • Millions to billions of points • Typical image • At most a few million pixels • More points than pixels...
“Point-Based Graphics” • Surfaces represented only by points • Maybe normals also • No topology • How can we do • Rendering • Modeling opperations • Simulation
Rendering • For each point draw a little “splat” • Use associated normal for shading • Possibly apply texture If “splats” are small compared to spacing then gaps result Splatting too many points would waste time Ohtake, et al., SIGGRAPH 2003
Rendering • “QSplat” algorithm • Build hierarchical tree of the points • Use bounding spheres to estimate size of clusters • Render clusters based on screen size • Use cluster-normals for internal nodes From Rusinkiewicz and Levoy, SIGGRAPH 2000.
Rendering From Rusinkiewicz and Levoy, SIGGRAPH 2000.
Rendering From Rusinkiewicz and Levoy, SIGGRAPH 2000.
Rendering From Rusinkiewicz and Levoy, SIGGRAPH 2000.
Rendering From Rusinkiewicz and Levoy, SIGGRAPH 2000.
Defining a Surface • Two related methods • Surface is a point attractor • Point-set surfaces • Implicit surface • Multi-level Partition of Unity Implicits • Implicit Moving Least-Squares
Point-Set Surfaces • Surface is the attractor of a repeated projection process • Find nearby points • Fit plane (weighted) • Project into plane • Repeat • Does it converge? • How to weight points? From Amenta and Kil, SIGGRAPH 2004.
Implicit Moving Lest-Squares • Define a scalar function that is zero passing through all the points From Shen, et al., SIGGRAPH, 2004.
Implicit Moving Lest-Squares Function is zero on boundary Decreases in outward direction From Shen, et al., SIGGRAPH, 2004.
Moving Least-Square Interpolation Standard Least Square