1 / 56

CS-378: Game Technology

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.

libra
Download Presentation

CS-378: Game Technology

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  2. Administrative • Final Project • First deliverable • Homework is out

  3. Today • General curve and surface representations • Splines and other polynomial bases • Points

  4. Geometry Representations • Constructive Solid Geometry (CSG) • Parametric • Polygons • Subdivision surfaces • Implicit Surfaces • Point-based Surface

  5. Geometry Representations Object made by CSG Converted to polygons

  6. Geometry Representations Object made by CSG Converted to polygons Converted to implicit surface

  7. Geometry Representations CSG on implicit surfaces

  8. Geometry Representations Point-based surface descriptions Ohtake, et al., SIGGRAPH 2003

  9. Geometry Representations Subdivision surface (different levels of refinement) Images from Subdivision.org

  10. 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...

  11. Parametric Representations Curves: Surfaces: Volumes: and so on... Note: a vector function is really n scalar functions

  12. Parametric Rep. Non-unique • Same curve/surface may have multiple formulae

  13. Simple Differential Geometry • Tangent to curve • Tangents to surface • Normal of surface • Also: curvature, curve normals, curve bi-normal, others... • Degeneracies: or

  14. Discretization • Arbitrary curves have an uncountable number of parameters i.e. specify function value at all points on real number line

  15. 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

  16. Polynomial Basis • Power Basis The elements of are linearly independant i.e. no good approximation Skipping something would lead to bad results... odd stiffness

  17. Specifying a Curve Given desired values (constraints) how do we determine the coefficients for cubic power basis? For now, assume

  18. Specifying a Curve Given desired values (constraints) how do we determine the coefficients for cubic power basis?

  19. Specifying a Curve Given desired values (constraints) how do we determine the coefficients for cubic power basis?

  20. Specifying a Curve Given desired values (constraints) how do we determine the coefficients for cubic power basis?

  21. Specifying a Curve Given desired values (constraints) how do we determine the coefficients for cubic power basis?

  22. Specifying a Curve Given desired values (constraints) how do we determine the coefficients for cubic power basis? Hermite basis functions

  23. Specifying a Curve Given desired values (constraints) how do we determine the coefficients for cubic power basis? Probably not to scale. Hermite basis functions

  24. 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

  25. Cubic Bézier • Similar to Hermite, but specify tangents indirectly Note: all the control points are points in space, no tangents.

  26. Cubic Bézier • Similar to Hermite, but specify tangents indirectly

  27. Cubic Bézier • Plot of Bézier basis functions

  28. 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

  29. Useful Properties of a Basis • Convex Hull • All points on curve inside convex hull of control points • Bézier basis has convex hull property

  30. 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...

  31. 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

  32. DeCasteljau Evaluation • A geometric evaluation scheme for Bézier

  33. 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*

  34. Tensor-Product Surfaces • Surface is a curve swept through space • Replace control points of curve with other curves

  35. Hermite Surface Bases Plus symmetries...

  36. Hermite Surface Hump Functions Plus symmetries...

  37. Points

  38. A Thought Experiment • Laser scanners • Millions to billions of points • Typical image • At most a few million pixels • More points than pixels...

  39. “Point-Based Graphics” • Surfaces represented only by points • Maybe normals also • No topology • How can we do • Rendering • Modeling opperations • Simulation

  40. 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

  41. 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.

  42. Rendering From Rusinkiewicz and Levoy, SIGGRAPH 2000.

  43. Rendering From Rusinkiewicz and Levoy, SIGGRAPH 2000.

  44. Rendering From Rusinkiewicz and Levoy, SIGGRAPH 2000.

  45. Rendering From Rusinkiewicz and Levoy, SIGGRAPH 2000.

  46. 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

  47. 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.

  48. Implicit Moving Lest-Squares • Define a scalar function that is zero passing through all the points From Shen, et al., SIGGRAPH, 2004.

  49. Implicit Moving Lest-Squares Function is zero on boundary Decreases in outward direction From Shen, et al., SIGGRAPH, 2004.

  50. Moving Least-Square Interpolation Standard Least Square

More Related