Post on 28-Dec-2015
transcript
3D Object Representations
2005, Fall
Course Syllabus
Image Processing Modeling Rendering Animation
Modeling
How do we.. Represent 3D objects in a computer? Construct representations quickly and/or automatically with
a computer? Manipulate 3D objects with a computer?
Different methods for different object representations
Representations of Geometry
3D Representations provide the foundations for Computer Graphics, Computer-Aided Geometric Design,
Visualization, Robotics
They are languages for describing geometrySemantics Syntax
values data structures
operations algorithms
Data structures determine algorithms!
3D Object Representations
Raw data Point cloud Range Image Polygon soup
Surface Mesh Subdivision Parametric Implicit
Solids Voxels BSP tree CSG Sweep
High-level structures Scene graph Skeleton Application specific
Point Cloud
Unstructured set of 3D point samples Acquired from range finer, computer vision, etc
Range Image
Set of 3D points mapping to pixels of depth Image Acquired from range scanner
Point Sample Rendering
Point Sample Rendering an object representation
consisting of a dense set of surface point samples, which contain color, depth and normal information
Point Sample Rendering (Surfel)
Polygon Soup
Unstructured set of polygons Many polygon models are just lists of polygons Created with interactive modeling systems?
Polygon Soup Evaluation
What are the advantages? It’s very simple to read, write, transmit, etc. A common output format from CAD modelers The format required for OpenGL
BIG disadvantage: No higher order information No information about neighbors No open/closed information No guarantees on degeneracies
3D Object Representations
Raw data Point cloud Range Image Polygon soup
Surface Mesh Subdivision Parametric Implicit
Solids Voxels BSP tree CSG Sweep
High-level structures Scene graph Skeleton Application specific
Curved Surfaces
Motivation Exact boundary representation for some objects More concise representation than polygonal mesh
Surfaces
What makes good surface representation? Accurate Concise Intuitive specification Local support Affine invariant Arbitrary topology Guaranteed continuity Natural parameterization Efficient display Efficient intersections
Mesh
Connected set of polygons (usually triangles) May not be closed
Subdivision Surface
Coarse mesh & subdivision rule Define smooth surfaces as limit of sequence of refinements
Subdivision (Smooth Curve)Subdivision Surface
Subdivision Surface
Key Questions How refine mesh?
• Aim for propertied like smoothness
• Loop Subdivision Scheme
How store mesh?• Aim for efficiency for implementing subdivision rules
Subdivision Surface
Advantages Simple method for describing complex surfaces Relatively easy to implement Arbitrary topology Local support Guaranteed continuity Multiresolution
Difficulties Intuitive specification Parameterization Intersections
Parametric Surface
Boundary defined by parametric functions x = fx (u, v)
y = fy (u, v)
z = fz (u, v)
Example: ellipsoid
sin
sincos
coscos
z
y
x
rz
ry
rx
Parametric Surface
Tensor product spline patchs Each patch is defined by blending control points Careful constrains to maintain continuity
Parametric Surface
Advantages Easy to enumerate points on surface Possible to describe complex shapes
Disadvantages Control mesh must be quadrilaterals Continuity constrains difficult to maintain Hard to find intersections
Implicit Surfaces
Boundary defined by implicit function f(x, y, z) = 0
Example linear (plane)
• ax + by + cz + d = 0
Ellipsoid
01222
zyx r
z
r
y
r
x
Implicit Surface Examples
Implicit Surfaces
Advantages Easy to test if point is on surface Easy to intersect two surfaces Easy to compute z given x and y
Disadvantages Hard to describe specific complex shapes Hard to enumerate points on surface
Comparison
FeaturePolygon
Mesh
Implicit
Surface
Parametric
SurfaceSubdivision
Surface
Accurate
Concise
Intuitive specification
Local support
Affine invariant
Arbitrary topology
Guaranteed continuity
Natural parameterization
Efficient display
Efficient intersections
No
No
No
Yes
Yes
Yes
No
No
Yes
No
Yes
Yes
No
No
Yes
No
Yes
No
No
Yes
Yes
Yes
Yes
Yes
Yes
No
Yes
Yes
Yes
No
Yes
Yes
No
Yes
Yes
Yes
Yes
No
Yes
No
3D Object Representations
Raw data Point cloud Range Image Polygon soup
Surface Mesh Subdivision Parametric Implicit
Solids Voxels BSP tree CSG Sweep
High-level structures Scene graph Skeleton Application specific
Solid Modeling
Represent solid interiors of objects Surface may not be described explicitly
Solid Modeling
Motivation Some acquisition methods generate solids (Ex: CAT scan) Some applications requires solids (Ex: CAD/CAM) Some algorithms require solids (Ex: RT with refraction)
Solid Modeling Representations
What makes a good solid representation? Accurate Concise Affine invariant Easy acquisition Guaranteed validity Efficient boolean operation Efficient display
Voxels
Partition space into uniform grid Grid cells are called a voxels (like pixels)
Store properties of solid object with each voxel Occupancy Color Density Temperature Etc.
Voxel Acquisition
Scanning devices MRI (Magnetic Resonance Imaging) CAT (Computed Axial Tomography)
Simulation FEM (Finite Element Method )
Voxels
Voxels
Advantage Simple, intuitive, unambiguous Same complexity for all objects Natural acquisition for some applications Trivial boolean operations
Disadvantages Approximates Not affine invariant Large scale requirement Expensive display
Quadtrees & Octrees
Refine resolution of voxels hierarchically More concise and efficient for non-uniform objects
<Enumeration vs Quadtree >
Quadtree Display
Binary Space Partitions (BSPs)
Recursive partition of space by planes Mark leaf cells as inside or outside object
Binary Space Partitions (BSPs)
recursively divide space into pairs of subspaces each separated by a plane of arbitrary orientation and
position
Constructive Solid Geometry (CSG)
Represent solid object as hierarchy of boolean operations Union Intersection Difference
Constructive Solid Geometry
Constructive Solid Geometry (CSG)
CSG Acquisition Interactive modeling programs
• CAD/CAM
Comparison
Feature Voxels Octree BSP CSG
Accurate
Concise
Affine invariant
Easy acquisition
Guaranteed validity
Efficient boolean operations
Efficient display
No
No
No
Some
Yes
Yes
No
No
No
No
Some
Yes
Yes
No
Some
No
Yes
No
Yes
Yes
Yes
Some
Yes
Yes
Some
No
Yes
No
To generate a 3-D surface, revolve a two dimensional entity, e.g., a line or plane about the axis in space.
called surfaces of revolution
Surface of Revolution (SOR)
Sweep surfaces (1/2)
A 3-D surface is obtained by traversing an entity such as a line, polygon or curve, along a path in space
the resulting surfaces are called sweep surfaces Frequently used in Geometric modeling
ex) entity : point
path : curveGenerates curve
Closed polygons and curves generates finite volume by sweeping transformation ex) square or rectangle swept along a
- straight path yields a parallel piped
- circle on straight path cylinder
- Rotation is also possible
Sweep surfaces (2/2)
Sweep
Solid swept by curve along trajectory
3D Object Representations
Raw data Point cloud Range Image Polygon soup
Surface Mesh Subdivision Parametric Implicit
Solids Voxels Octree BSP tree CSG Sweep
High-level structures Scene graph Skeleton Application specific
Scene Graph
Union of objects at leaf nodes
Skeleton
Graph of curves with radii
Application Specific
Taxonomy of 3D Representations
Equivalence of Representations
Thesis Each fundamental representation has enough expressive po
wer to model the shape of any geometry object It is possible to perform all geometric operation with any fund
amental representation
Analogous to Turing-Equivalence All computers today are turing-equivalent, but we still have
many different processors
Computational Differences
Efficiency Combinatorial complexity (Ex: O( n log n)) Space/time trade-offs (Ex: Z-buffer) Numerical accuracy/stability (Degree of polynomial)
Simplicity Ease of acquisition Hardware Acceleration Software creation and maintenance
Usability Designer interface vs. computational engine
Complexity vs. Verbosity Tradeoff
Advanced Modeling
Advanced Modeling Procedural Modeling
• Fractal Modeling
• Grammar-based Modeling
Particle System Physically Based Modeling