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:
Start with a curve defined by control points.
Generate new control vertex points along each segment.
Connect the new control points to form a new curve.
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 for and , and surfaces use and to represent , , and 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 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:
= weight for different polygons
= number of vertices in the polygon
= calculated weight
= Weight calculated nearest using this equation
= Weight calculation far away from point using this polygon.
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 to represent curves where a single x corresponds to two y values.
Extending from 2D curves to 3D surfaces using parameters and .
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.