Download Solid Modeling 3D Object Representations • Raw data • Solids

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

B-tree wikipedia , lookup

Red–black tree wikipedia , lookup

Interval tree wikipedia , lookup

Binary tree wikipedia , lookup

Binary search tree wikipedia , lookup

Quadtree wikipedia , lookup

Transcript
3D Object Representations
• Raw data
o Point cloud
o Range image
o Polygon soup
Solid Modeling
• Solids
o
o
o
o
Voxels
BSP tree
CSG
Sweep
• Surfaces
Adam Finkelstein
Princeton University
COS 426, Spring 2003
o
o
o
o
3D Object Representations
• Raw data
o
o
o
o
• High-level structures
o Scene graph
o Skeleton
o Application specific
Implicit Surfaces
• Solids
o Point cloud
o Range image
o Polygon soup
Mesh
Subdivision
Parametric
Implicit
• Points satisfying: F(x,y,z) = 0
Voxels
BSP tree
CSG
Sweep
• Surfaces
o
o
o
o
• High-level structures
Mesh
Subdivision
Parametric
Implicit
o Scene graph
o Skeleton
o Application specific
Polygonal Model
Implicit Model
Bill Lorensen
SIGGRAPH 99
Course #4 Notes
Implicit Surfaces
Implicit Surfaces
• Example: quadric
• Advantages:
o f(x,y,z)=ax2+by2+cz2+2dxy+2eyz+2fxz+2gx+2hy+2jz +k
• Common quadric surfaces:
o
o
o
o
o
Sphere
Ellipsoid
Torus
Paraboloid
Hyperboloid
2
2
o
o
o
o
Very concise
Guaranteed validity
Easy to test if point is on surface
Easy to intersect two surfaces
• Disadvantages:
2
x  y  z
  +   +   − 1 = 0
 
 rx   ry   rz 
o Hard to describe complex shapes
o Hard to enumerate points on surface
o Hard to draw
H&B Figure 10.10
1
3D Object Representations
• Raw data
o Point cloud
o Range image
o Polygon soup
Solid Modeling
• Solids
o
o
o
o
• Represent solid interiors of objects
Voxels
BSP tree
CSG
Sweep
o Surface may not be described explicitly
• Surfaces
o
o
o
o
Mesh
Subdivision
Parametric
Implicit
• High-level structures
o Scene graph
o Skeleton
o Application specific
SUNY Stoney Brook
Visible Human
(National Library of Medicine)
Motivation 1
Motivation 2
• Some acquisition methods generate solids
o Example: CAT scan
• Some applications require solids
o Example: CAD/CAM
Intergraph Corporation
Stanford University
Motivation 3
Solid Modeling Representations
• Some algorithms require solids
• What makes a good solid representation?
o Example: ray tracing with refraction
o
o
o
o
o
o
o
Addy Ngan and Zaijin Guan
COS 426, 1998
Princeton University
Accurate
Concise
Affine invariant
Easy acquisition
Guaranteed validity
Efficient boolean operations
Efficient display
Lorensen
2
Solid Modeling Representations
Solid Modeling Representations
• Voxels
• Voxels
• Quadtrees & Octrees
• Quadtrees & Octrees
• Binary space partitions
• Binary space partitions
• Constructive solid geometry
• Constructive solid geometry
Voxels
Voxel Acquisition
• Partition space into uniform grid
• Scanning devices
o Grid cells are called a voxels (like pixels)
• Store properties of solid object with each voxel
o
o
o
o
o
o MRI
o CAT
• Simulation
Occupancy
Color
Density
Temperature
etc.
o FEM
Stanford University
FvDFH Figure 12.20
Voxel Storage
• O(n3) storage for nxnxn grid
o 1 billion voxels for 1000x1000x1000
SUNY Stoney Brook
Voxel Boolean Operations
• Compare objects voxel by voxel
o Trivial
∪
=
∩
=
3
Voxel Display
Voxel Display
• Isosurface rendering
• Slicing
o Render surfaces bounding volumetric regions of
constant value (e.g., density)
o Draw 2D image resulting from intersecting voxels
with a plane
Visible Human
Isosurface Visualization
Princeton University
Voxel Display
(National Library of Medicine)
Voxels
• Ray casting
• Advantages
o Integrate density along rays through pixels
o
o
o
o
Simple, intuitive, unambiguous
Same complexity for all objects
Natural acquisition for some applications
Trivial boolean operations
• Disadvantages
o
o
o
o
Approximate
Not affine invariant
Large storage requirements
Expensive display
Engine Block
Stanford University
Solid Modeling Representations
• Voxels
• Quadtrees & Octrees
Quadtrees & Octrees
• Refine resolution of voxels hierarchically
o More concise and efficient for non-uniform objects
• Binary space partitions
• Constructive solid geometry
Uniform Voxels
Quadtree
FvDFH Figure 12.21
4
Quadtree Boolean Operations
A
Quadtree Display
• Extend voxel methods
B
A∪B
o Slicing
o Isosurface extraction
o Ray casting
Finding neighbor cell requires
traversal of hierarchy (O(1))
A∩B
FvDFH Figure 12.24
Solid Modeling Representations
FvDFH Figure 12.25
Binary Space Partitions (BSPs)
• Voxels
• Recursive partition of space by planes
o Mark leaf cells as inside or outside object
• Quadtrees & Octrees
• Binary space partitions
a
• Constructive solid geometry
a
1
g
a
f
e
5
d
c
b
2
Object
1
b
6
f
d 7 c
e
b
2
c
3
d
4
3
e
4
f
5
Binary Spatial Partition
6
7
Binary Tree
Naylor
BSP Fundamentals
BSP is a Search Structure
Exploit hierarchy of convex regions
Regions decrease in size along any tree path
Regions converge in the limit to the surface
Single geometric operation
Partition a convex region by a hyperplane
Single combinatorial operation
Two child nodes added as leaf nodes
Partitioned
region
Homogeneous
region
R
h
on
R+
Initial
Tree
R
⇒
R-
OUT
on
IN
on
R
New
tree
+
1st level Approximation
Naylor
in
on
OUT
R+
on
OUT
OUT
R-
⇒
out
out
in
on
OUT
on
IN
in
on
out
on
OUT
2nd level Approximation
Naylor
5
BSP Acquisition
BSP Boolean Operations
• Must construct a “good” binary search structure
o Efficiency comes from logarithmic tree depth
o Each node V corresponds to a convex region
containing all geometry in the subtree rooted at V
o No intersection with bounding volume of V means no
intersection with subtree rooted at V
o Do detail work only in regions required
o Boolean operations grow with O( log n) if “good” tree
out
OUT
in
in
• Divide and conquer
OUT
IN
in
out
out
OUT
“Bad”
“Good”
Naylor
BSP Display
Naylor
Solid Modeling Representations
• Visibility ordering
• Voxels
o Determine on which side of plane the viewer lies
» near-subtree -> polygons on split -> far-subtree
• Quadtrees & Octrees
• Binary space partitions
o2
A
o1
A
o3
C
B
C
Viewer
• Constructive solid geometry
Partitioning Tree
o4
B
o1
3rd
o2
o3
o4
4th
1st
2nd
Viewer
Naylor
Constructive Solid Geometry (CSG)
• Represent solid object as hierarchy of
boolean operations
CSG Acquisition
• Interactive modeling programs
o CAD/CAM
o Union
o Intersection
o Difference
FvDFH Figure 12.27
H&B Figure 9.9
6
CSG Boolean Operations
CSG Display & Analysis
• Create a new CSG node joining subtrees
• Ray casting
o Union
o Intersection
o Difference
Union
Circle
Box
FvDFH Figure 12.27
BSP
No
No
No
Some
Yes
Yes
No
No
No
No
Some
Yes
Yes
No
Some
No
Yes
No
Yes
Yes
Yes
CSG
Octree
Accurate
Concise
Affine invariant
Easy acquisition
Guaranteed validity
Efficient boolean operations
Efficient display
Taxonomy of 3D Representations
Voxels
Summary
Some
Yes
Yes
Some
No
Yes
No
Discrete
Continuous
Voxels
Combinatorial
Functional
Topological Set Membership Parametric
Mesh
Subdivision
BSP Tree
Cell Complex
Bezier
B-Spline
Implicit
Algebraic
Naylor
7