Parametric Representation and Tessellation Lecture Notes

Parametric Representation (Continued)

  • Focus on subdivision algorithms, curves, and surfaces.

  • Subdivision is favored for being small, affordable, and efficient.

  • Integrated into many GPUs and software.

Subdivision Algorithms

  • Basic idea: Divide curves into segments and generate new control points on those segments iteratively.

Process:
  1. Start with a curve defined by control points.

  2. Generate new control vertex points along each segment.

  3. Connect the new control points to form a new curve.

  4. Repeat the process indefinitely. The definition of the rules is customizable.

  • Quadratic B-spline example: Uses a specific rule set, resulting in a C1 continuous curve.

    • C1 Continuity: Continuity at the joint control points, meaning the segments are the same.

  • Stopping condition in OpenGL: When the line segment is approximately one pixel.

  • C2 Continuity: Derivative is the same at the joint control points.

    • Circle example: The derivative is always the same.

  • Midpoint insertion: Another way to achieve C2 continuity, resulting in a smoother curve.

Subdivision for Smooth Surfaces

  • Goal: To make the overall structure (curves or surfaces) as smooth as possible in 2D or 3D.

  • Curves are represented using a single parameter tt for xx and yy, and surfaces use uu and vv to represent xx, yy, and zz in 3D.

Loop Subdivision (Surfaces)

  • A generalization of curve subdivision to 2D surfaces.

  • Iteratively refines a mesh to create a smoother and more detailed surface.

  • Process: Add new surface points, creating smaller polygons, gradually approximating a smoother surface.

Weights:
  • Different weights are assigned to different control points (similar to using a fraction tt from 0 to 1).

  • Control points contribute to the new polygon vertex based on assigned weights.

  • Points closer to a vertex have a larger weight.

  • The process is stopped in iterations.

Extraordinary Polygons Subdivision

  • Addresses cases with irregular polygon shapes and sizes.

  • Involves generating new control points based on the polygons.

  • Equations for weight calculation:

    • αA\alpha_A = weight for different polygons

    • kk = number of vertices in the polygon

    • αi\alpha_i = calculated weight

    • rpart0r_{part \, 0} = Weight calculated nearest using this equation

    • rpartir_{part \, i} = Weight calculation far away from point using this polygon.

    • Ri=4(2cos(2πi/k)+2)kR_i = \frac{4 - (2cos(2\pi i / k) + 2)}{k}

  • The goal is uniformity when dealing with surfaces.

Coupler Clock

Key Terms:
  • Face Point: A new point defined on a face.

  • Edge Point: A new point defined on an edge.

  • Original Point: The original control point.

  • Process involves defining new face points and edge points, reconnecting them to form new segments and structures.

  • New vertices may occur on faces or edges of the original mesh.

Bump Mapping vs. Displacement Mapping

  • Bump Mapping: Simulates surface detail without changing the actual shape.

  • Displacement Mapping: Modifies the actual surface by giving different heights.

  • Limitation of Bump Mapping: It doesn't change the actual shape or surface size, leading to smooth shading even on edges.

  • Advantage of Bump Mapping: More efficient as it simulates detail without altering the geometry.

Tessellation

  • A built-in technique in modern GPUs for rendering.

  • Offloads the refinement of triangles from the CPU to the GPU.

  • Refines coarse geometry into finer, more detailed geometry.

  • Involves subdividing polygons into smaller tessellations or triangles.

Tessellation Stages:
  • Control Shader (Tessellation Control Shader):

    • Decides the amount of tessellation applied to a patch (a coarse polynomial surface).

    • Outputs tessellation levels for edges and the interior of patches.

    • Ensures continuity between neighboring patches (C1, C2 continuity).

  • Primitive Generator:

    • Subdivides input patches into smaller geometric primitives (usually triangles).

  • Evaluation Shader (Tessellation Evaluation Shader):

    • Processes the subdivided geometry from the generator.

    • Calculates attributes for the new vertices.

Tessellation Levels:
  • Outer Tessellation Level: Defines tessellation for the edges.

  • Inner Tessellation Level: Defines tessellation inside the patch.

  • Outer tessellation levels (four values) determine how edges are subdivided (e.g., a level of 4 means an edge is divided into four).

  • Inner levels define the division of the interior of the object.

Recap of Parametric Representations

  • Using a single parameter tt to represent curves where a single x corresponds to two y values.

  • Extending from 2D curves to 3D surfaces using parameters uu and vv.

  • Generating new curves based on control points by assigning different weights (fractions between 0 and 1).

  • Subdivision methods for curves and surfaces involve defining new control points based on midpoints or other rules.

  • C1 continuity (joint continuity) vs. C2 continuity (derivative continuity).

  • Tessellation is now implemented in OpenGL, offloading computations from CPU to GPU for faster processing.