3d object representations
DESCRIPTION
3D Object Representations. 2012, Fall. Introduction. What is CG? Imaging : Representing 2D images Modeling : Representing 3D objects Rendering : Constructing 2D images from 3D objects Animation : Simulating changes over time. Course Syllabus. Image Processing Modeling Rendering - PowerPoint PPT PresentationTRANSCRIPT
3D Object Representations
2012, Fall
Introduction
What is CG? Imaging : Representing 2D images Modeling : Representing 3D objects Rendering : Constructing 2D images from 3D objects Animation : Simulating changes over time
Course Syllabus
Image Processing Modeling Rendering Animation
Modeling
How do we.. Represent 3D objects in a computer? Acquire computer representations of 3D objects? Manipulate computer representations of 3D objects? Analyze computer representations of 3D objects?
Different methods for different object representations
3D Object
Why Different Representations?
Efficiency for different tasks Acquisition Rendering Manipulation Animation Analysis
The choice of 3D object representation can have great impact on algorithms Data structures determine algorithms!
3D Object Representations
Desirable properties depend on intended use Easy acquisition Accurate Concise Intuitive editing Efficient editing Efficient display Efficient intersections Guaranteed validity Guaranteed smoothness Etc.
3D Scene Representation
Scene is usually approximated by 3D primitives Point Line segment Polygon Polyhedron Curved surface Solid object etc.
3D point
Specifies a location Represented by three coordinates Infinitely small
3D Vector
Specifies a direction and a magnitude Represented by three coordinates Magnitude Has no location
222 dzdydx V
3D Vector
Dot(=Scalar) product of two 3D vectors
cos 22 VVVV 11
3D Vector
Cross(=Vector) product of two 3D vectors V1 X V2 = vector perpendicular V1 and V2
) , ,( 2121212121212 dxdydydxdzdxdxdzdydzdzdy VV1
sin 22 VVVV 11 (dx2, dy2, dz2)
(dx1, dy1, dz1)
3D Line Segment
Linear path between two points Use a linear combination of two points
Parametric representation
1)t(0 ),( 121 PPtPP
3D Ray
Line segment with one endpoint at infinity Parametric representation
)t(0 ,1 VtPP
3D Line
Line segment with both endpoints at infinity Parametric representation
)t(- ,1 VtPP
3D Plane
A linear combination of three points Implicit representation
, or
N is the plane “normal”• Unit-length vector
• Perpendicular to plane
0 dNP
0 dczbyax
3D Polygon
Area “inside” a sequence of coplanar points Triangle Quadrilateral Convex Star-shaped Concave Self-intersection
Holes (use > 1 polygon struct)
Points are in counter-clockwise order
3D Sphere
All points at distance “r” from point “(cx, cy, cz)” Implicit representation
Parametric representation
2222 )()()( rczcycx zyx
z
y
x
crz
cry
crx
sin
sincos
coscos
3D Scenes
Comprise set of geometric primitives
Other Geometric Primitives
More detail on 3D modeling in course Point Line segment Polygon Polyhedron Curved surface Solid object etc.
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?
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
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
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
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
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
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.
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
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
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
Advanced Modeling
Advanced Modeling Procedural Modeling
• Fractal Modeling
• Grammar-based Modeling
Particle System Physically Based Modeling