solid modeling csg · constructive solid geometry (csg) • represent solid object as hierarchy of...

7
Solid Modeling Adam Finkelstein Princeton University COS 426, Spring 2003 3D Object Representations Raw data o Point cloud o Range image o Polygon soup • Surfaces o Mesh o Subdivision o Parametric o Implicit • Solids o Voxels o BSP tree o CSG o Sweep High-level structures o Scene graph o Skeleton o Application specific 3D Object Representations Raw data o Point cloud o Range image o Polygon soup • Surfaces o Mesh o Subdivision o Parametric o Implicit • Solids o Voxels o BSP tree o CSG o Sweep High-level structures o Scene graph o Skeleton o Application specific Implicit Surfaces Points satisfying: F(x,y,z) = 0 Polygonal Model Implicit Model Bill Lorensen SIGGRAPH 99 Course #4 Notes Implicit Surfaces Example: quadric o f(x,y,z)=ax 2 +by 2 +cz 2 +2dxy+2eyz+2fxz+2gx+2hy+2jz +k Common quadric surfaces: o Sphere o Ellipsoid o Torus o Paraboloid o Hyperboloid H&B Figure 10.10 0 1 2 2 2 = + + z y x r z r y r x Implicit Surfaces • Advantages: o Very concise o Guaranteed validity o Easy to test if point is on surface o Easy to intersect two surfaces • Disadvantages: o Hard to describe complex shapes o Hard to enumerate points on surface o Hard to draw

Upload: others

Post on 19-Oct-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

  • 1

    Solid Modeling

    Adam FinkelsteinPrinceton University

    COS 426, Spring 2003

    3D Object Representations• Raw data

    o Point cloudo Range imageo Polygon soup

    • Surfaceso Mesho Subdivision o Parametrico Implicit

    • Solidso Voxelso BSP treeo CSGo Sweep

    • High-level structureso Scene grapho Skeletono Application specific

    3D Object Representations• Raw data

    o Point cloudo Range imageo Polygon soup

    • Surfaceso Mesho Subdivision o Parametrico Implicit

    • Solidso Voxelso BSP treeo CSGo Sweep

    • High-level structureso Scene grapho Skeletono Application specific

    Implicit Surfaces• Points satisfying: F(x,y,z) = 0

    Polygonal Model Implicit Model

    Bill LorensenSIGGRAPH 99Course #4 Notes

    Implicit Surfaces• Example: quadric

    o f(x,y,z)=ax2+by2+cz2+2dxy+2eyz+2fxz+2gx+2hy+2jz +k

    • Common quadric surfaces:o Sphereo Ellipsoido Toruso Paraboloido Hyperboloid

    H&B Figure 10.10

    01222

    =−

    +

    +

    zyx rz

    ry

    rx

    Implicit Surfaces• Advantages:

    o Very conciseo Guaranteed validityo Easy to test if point is on surfaceo Easy to intersect two surfaces

    • Disadvantages:o Hard to describe complex shapeso Hard to enumerate points on surfaceo Hard to draw

  • 2

    3D Object Representations• Raw data

    o Point cloudo Range imageo Polygon soup

    • Surfaceso Mesho Subdivision o Parametrico Implicit

    • Solidso Voxelso BSP treeo CSGo Sweep

    • High-level structureso Scene grapho Skeletono Application specific

    Solid Modeling• Represent solid interiors of objects

    o Surface may not be described explicitly

    Visible Human(National Library of Medicine)

    SUNY Stoney Brook

    Motivation 1• Some acquisition methods generate solids

    o Example: CAT scan

    Stanford University

    Motivation 2• Some applications require solids

    o Example: CAD/CAM

    Intergraph Corporation

    Motivation 3• Some algorithms require solids

    o Example: ray tracing with refraction

    Addy Ngan and Zaijin GuanCOS 426, 1998

    Princeton University

    Solid Modeling Representations• What makes a good solid representation?

    o Accurateo Conciseo Affine invarianto Easy acquisitiono Guaranteed validityo Efficient boolean operationso Efficient display

    Lorensen

  • 3

    Solid Modeling Representations• Voxels

    • Quadtrees & Octrees

    • Binary space partitions

    • Constructive solid geometry

    Solid Modeling Representations• Voxels

    • Quadtrees & Octrees

    • Binary space partitions

    • Constructive solid geometry

    Voxels• Partition space into uniform grid

    o Grid cells are called a voxels (like pixels)

    • Store properties of solid object with each voxelo Occupancyo Coloro Densityo Temperatureo etc.

    FvDFH Figure 12.20

    Voxel Acquisition• Scanning devices

    o MRIo CAT

    • Simulationo FEM

    SUNY Stoney Brook

    Stanford University

    Voxel Storage• O(n3) storage for nxnxn grid

    o 1 billion voxels for 1000x1000x1000

    Voxel Boolean Operations• Compare objects voxel by voxel

    o Trivial

    ∪ =

    ∩ =

  • 4

    Voxel Display• Isosurface rendering

    o Render surfaces bounding volumetric regions of constant value (e.g., density)

    Isosurface VisualizationPrinceton University

    Voxel Display• Slicing

    o Draw 2D image resulting from intersecting voxels with a plane

    Visible Human(National Library of Medicine)

    Voxel Display• Ray casting

    o Integrate density along rays through pixels

    Engine BlockStanford University

    Voxels• Advantages

    o Simple, intuitive, unambiguouso Same complexity for all objects o Natural acquisition for some applicationso Trivial boolean operations

    • Disadvantageso Approximateo Not affine invarianto Large storage requirementso Expensive display

    Solid Modeling Representations• Voxels

    • Quadtrees & Octrees

    • Binary space partitions

    • Constructive solid geometry

    Quadtrees & Octrees• Refine resolution of voxels hierarchically

    o More concise and efficient for non-uniform objects

    Uniform Voxels Quadtree

    FvDFH Figure 12.21

  • 5

    Quadtree Boolean Operations

    A B

    A ∩ BA ∪ B

    FvDFH Figure 12.24

    Quadtree Display• Extend voxel methods

    o Slicing o Isosurface extractiono Ray casting

    Finding neighbor cell requirestraversal of hierarchy (O(1))

    FvDFH Figure 12.25

    Solid Modeling Representations• Voxels

    • Quadtrees & Octrees

    • Binary space partitions

    • Constructive solid geometry

    Binary Space Partitions (BSPs)• Recursive partition of space by planes

    o Mark leaf cells as inside or outside object

    a

    b

    c

    de

    f

    1

    2

    3

    7

    4

    5

    6

    a

    b c

    def

    g

    Object

    a

    b

    cdef

    1

    2

    3

    4

    5

    6

    7

    Binary Spatial Partition

    Binary Tree

    Naylor

    BSP FundamentalsSingle geometric operation

    Partition a convex region by a hyperplaneSingle combinatorial operation

    Two child nodes added as leaf nodes

    R-

    R+

    Initial Tree

    Homogeneous region

    Partitioned region

    R

    New treeR

    h

    R+R-

    R- +

    Naylor

    BSP is a Search StructureExploit hierarchy of convex regions

    Regions decrease in size along any tree pathRegions converge in the limit to the surface

    IN

    OUTOUT

    OUT

    on on

    on

    1st level Approximation

    IN

    OUTOUT

    OUT

    out

    out

    outinin

    in

    2nd level Approximation

    on

    on

    on on

    on

    on

    Naylor

  • 6

    BSP Acquisition• Must construct a “good” binary search structure

    o Efficiency comes from logarithmic tree depth

    IN

    OUTOUT

    OUT

    out

    out

    outinin

    in

    “Bad” “Good”

    Naylor

    BSP Boolean Operations• Divide and conquer

    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 requiredo Boolean operations grow with O( log n) if “good” tree

    Naylor

    BSP Display• Visibility ordering

    o Determine on which side of plane the viewer lies» near-subtree -> polygons on split -> far-subtree

    A

    B

    Co1

    o2

    o3

    o4

    Viewer

    o3o2o1 o4

    Viewer

    3rd 4th 1st 2nd

    Partitioning Tree

    CB

    A

    Naylor

    Solid Modeling Representations• Voxels

    • Quadtrees & Octrees

    • Binary space partitions

    • Constructive solid geometry

    Constructive Solid Geometry (CSG)• Represent solid object as hierarchy of

    boolean operationso Uniono Intersectiono Difference

    FvDFH Figure 12.27

    CSG Acquisition• Interactive modeling programs

    o CAD/CAM

    H&B Figure 9.9

  • 7

    CSG Boolean Operations• Create a new CSG node joining subtrees

    o Uniono Intersectiono Difference

    FvDFH Figure 12.27

    CSG Display & Analysis• Ray casting

    Circle Box

    Union

    Summary

    Accurate No No Some SomeConcise No No No YesAffine invariant No No Yes YesEasy acquisition Some Some No SomeGuaranteed validity Yes Yes Yes NoEfficient boolean operations Yes Yes Yes YesEfficient display No No Yes No

    Vox

    els

    Oct

    ree

    BSP

    CSG

    Taxonomy of 3D Representations

    Discrete Continuous

    Combinatorial Functional

    Parametric ImplicitTopological Set Membership

    Voxels

    MeshSubdivision

    BSP TreeCell Complex

    BezierB-Spline

    Algebraic

    Naylor