CPS 124/296.3
Fall 2002

Modeling Surfaces

Modeling

  • How to represent objects for 3D graphics?
  • How to construct such representations quickly and/or automatically?
  • How to manipulate such representations?

Variety of Representations

  • Raw Data
    • point cloud - unstructured set of 3D point samples
    • range image - depth data (acquired from range scanner)
    • unconnected polygons - created interactively?
  • Surfaces
    • mesh - connected set of polygons
    • subdivision - coarse mesh + subdivision rule
    • parametric - geometric equation
    • implicit - points satisfying function: F(x, y, z) = 0

  • Solids
    • voxels - uniform grid of sample data (acquired from MRI, CAT, etc)
    • BSP trees - tree representation of 3D data
    • CSG - hierarchy of boolean operations applied to simple shapes
  • High-level structures
    • scene graph - union of objects at leaf nodes
    • skeleton - graph of curves with radii
    • application specific

Goals

  • Accuracy
  • Conciseness
  • Intuitive specification
  • Affine invariant
  • Natural parameterization
  • Efficient display
  • Efficient intersections
  • Arbitrary topology
  • Guaranteed continuity
  • Local support

Polygon Mesh

  • Most basic representation for 3D systems (usually triangles)
  • Made up of vertices, edges, and faces
  • Order in which vertices are traversed determines direction of normal

Normals

  • Used to determine surface lighting (amount based on dot product with light direction)
  • If polygon is planar, can calculate normal as cross product of edge vectors
  • If not, approximate by "averaging" using Newell's method
  • Can be calculated per polygon, flat shading, or per vertex, interpolated shading

Mathematical Representations of Surfaces

  • Implicit or functional form: F(x, y, z) = 0
  • Explicit or parametric form: P(u, v) = (X(u, v), Y(u, v), Z(u, v))
  • Example: sphere

Techniques for Generating Surfaces

  • Typically start with 2D polygon or curve and extend in 3D
  • Polyhedra, any closed collection of planar polygons
    Since many vertices are shared, avoid redundancy by separating vertex, normal, and face data
    • Platonic solids
    • Prisms
  • Extrusions, any 2D shape that is pulled or swept through 3D space
    • Segmented tubes
    • Ruled surfaces
    • Surfaces of revolution
  • Quadrics, 3D analogs of conic sections
  • Superquadrics, quadrics extended with "bulge" factors to produce greater variety
  • Constructive Solid Geometry (CSG), combine above surfaces via union, intersection, difference

Tessellating Surfaces

  • Goal: generate fewest number of polygons
  • Variety of ways to polygonalize ideal surface
  • Simplest: given function of surface, sample at given intervals
  • Marching cubes, divide 3D space into cubes, sample at specific points, connect samples

References

 

Feedback?