Curves and Curved Surfaces - lorentzo/IntroductionToComputerGraphics GitHub Wiki

Triangle is basic atomic rendering primitive for rasterization graphics rendering pipeline. Also, triangle is common rendering primitive for ray-tracing (sometimes we can define intersection with surface analytically so triangles do not have to be used).

Due to easier handling and authoring of some objects and animation paths, it is more convenient to use alternative geometric description.

Such alternative geometric description are curves and curved surfaces:

  • described precisely by equations
  • these equations are parametrized enabling easier handling for user (e.g., controlling only several points which affect the whole curve/surface rather than controlling all points of the curve/surface)
  • those equations can be evaluated and sets of triangles can be created for rendering purposes
  • more compact representation than triangles
  • provide scalable geometric primitives - surface can be turned into 2 or 2000 triangles enabling on the fly level of detail modeling depending on distance for surface
  • provide more smoother and continuous primitives than straight lines and triangles
  • animation and collision detection may become simpler
  • provide savings for model storage in terms of memory
  • transforming curved surfaces involves less matrix multiplications compared to mesh
  • less data that has to be sent from CPU to GPU (if this is possible by pipeline)
  • higher vertex density can be obtained if needed (smoother silhouettes and edges)
  • animation requires much smaller amount of points to be animated
  • collision detection can be simpler are more precise

Parametric curves

  • used to move viewer (camera), light or object along predefined path: changing both position and rotation (positional and rotational interpolation)
  • parametric curve describes points using some formula as function of parameter t -> p(t) - function delivers point for each t in [a,b]
    • generated points are continuous (very small t can be used to get points which are very close to each other)

Bezier curves

Continuity and Piecewise Bezier curves

Cubic Hermite splines

  • Bezier curves are good for explaining theory behind the construction of smooth splines but sometimes are not predictable to work with
  • Hermit curve is defined by starting and ending points

B-Splines

  • uniform cubic B-splines

Parametric curved surfaces

  • natural extension of parametric curves
  • used to model objects with curved surfaces
  • this is parametric surface defined by small number of control points
  • by process of tessellation a parametric curve is transformed into triangle mesh for efficient rendering
  • adaptive number of triangles -> smooth shading and silhouettes
  • whole surface can be animated using small number of control points

Bezier Patches

B-spline surfaces

  • NURBS

Literature

  • Real-Time Rendering Book, Ch 17