Soild Modelling

Embed Size (px)

Citation preview

  • 7/29/2019 Soild Modelling

    1/7

    1

    ThomasFunkhouser2000

    Solid Modeling

    Thomas Funkhouser

    Princeton University

    C0S 426, Fall 2000

    ThomasFunkhouser2000

    3D Object Representations

    Raw data$ Point cloud

    $ Range image

    $ Polygon soup

    Surfaces$ Mesh

    $ Subdivision

    $ Parametric

    $ Implicit

    Solids$ Voxels

    $ BSP tree

    $ CSG

    $ Sweep

    High-level structures$ Scene graph

    $ Skeleton

    $ Application specific

    ThomasFunkhouser2000

    3D Object Representations

    Raw data$ Point cloud

    $ Range image

    $ Polygon soup

    Surfaces$ Mesh

    $ Subdivision$ Parametric

    $ Implicit

    Solids$ Voxels

    $ BSP tree

    $ CSG

    $ Sweep

    High-level structures$ Scene graph$ Skeleton

    $ Application specific

    ThomasFunkhouser2000

    Implicit Surfaces

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

    Polygonal Model Implicit Model

    BillLorensen

    SIGGRAPH 99

    Course #4 Notes

    ThomasFunkhouser2000

    Implicit Surfaces

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

    Common quadric surfaces:$ Sphere

    $ Ellipsoid

    $ Torus

    $ Paraboloid

    $ Hyperboloid

    H&B Figure 10.10

    01

    222

    zyx r

    z

    r

    y

    r

    x

    ThomasFunkhouser2000

    Implicit Surfaces

    Advantages:$ Very concise

    $ Guaranteed validity

    $ Easy to test if point is on surface

    $ Easy to intersect two surfaces

    Disadvantages:$ Hard to describe complex shapes

    $ Hard to enumerate points on surface

    $ Hard to draw

  • 7/29/2019 Soild Modelling

    2/7

    2

    ThomasFunkhouser2000

    3D Object Representations

    Raw data$ Point cloud

    $ Range image

    $ Polygon soup

    Surfaces$ Mesh

    $ Subdivision

    $ Parametric

    $ Implicit

    Solids$ Voxels

    $ BSP tree

    $ CSG

    $ Sweep

    High-level structures$ Scene graph

    $ Skeleton

    $ Application specific

    ThomasFunkhouser2000

    Solid Modeling

    Represent solid interiors of objects$ Surface may not be described explicitly

    Visible Human(National Library of Medicine)

    SUNY Stoney Brook

    ThomasFunkhouser2000

    Motivation 1

    Some acquisition methods generate solids$ Example: CAT scan

    Stanford University ThomasFunkhouser2000

    Motivation 2

    Some applications require solids$ Example: CAD/CAM

    Intergraph Corporation

    ThomasFunkhouser2000

    Motivation 3

    Some algorithms require solids$ Example: ray tracing with refraction

    Addy Nganand Zaijin Guan

    COS 426, 1998

    Princeton University ThomasFunkhouser2000

    Solid Modeling Representations

    What makes a good solid representation?$ Accurate

    $ Concise

    $ Affine invariant

    $ Easy acquisition

    $ Guaranteed validity

    $ Efficient boolean operations

    $ Efficient display

    Lorensen

  • 7/29/2019 Soild Modelling

    3/7

    3

    ThomasFunkhouser2000

    Solid Modeling Representations

    Voxels

    Quadtrees & Octrees

    Binary space partitions

    Constructive solid geometry

    ThomasFunkhouser2000

    Solid Modeling Representations

    Voxels

    Quadtrees & Octrees

    Binary space partitions

    Constructive solid geometry

    ThomasFunkhouser2000

    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.

    FvDFH Figure 12.20 ThomasFunkhouser2000

    Voxel Acquisition

    Scanning devices$ MRI

    $ CAT

    Simulation$ FEM

    SUNY Stoney Brook

    Stanford University

    ThomasFunkhouser2000

    Voxel Storage

    O(n3) storage for nxnxn grid$ 1 billion voxels for 1000x1000x1000

    ThomasFunkhouser2000

    Voxel Boolean Operations

    Compare objects voxel by voxel$ Trivial

    =

    =

  • 7/29/2019 Soild Modelling

    4/7

    4

    ThomasFunkhouser2000

    Voxel Display

    Isosurface rendering$ Render surfaces bounding volumetric regions of

    constant value (e.g., density)

    Isosurface Visualization

    Princeton University ThomasFunkhouser2000

    Voxel Display

    Slicing$ Draw 2D image resulting from intersecting voxels

    with a plane

    Visible Human(National Library of Medicine)

    ThomasFunkhouser2000

    Voxel Display

    Ray casting$ Integrate density along rays through pixels

    Engine Block

    Stanford University ThomasFunkhouser2000

    Voxels

    Advantages$ Simple, intuitive, unambiguous

    $ Same complexity for all objects

    $ Natural acquisition for some applications

    $ Trivial boolean operations

    Disadvantages$ Approximate

    $ Not affine invariant$ Large storage requirements

    $ Expensive display

    ThomasFunkhouser2000

    Solid Modeling Representations

    Voxels

    Quadtrees & Octrees

    Binary space partitions

    Constructive solid geometry

    ThomasFunkhouser2000

    Quadtrees & Octrees

    Refine resolution of voxels hierarchically$ More concise and efficient for non-uniform objects

    Uniform Voxels Quadtree

    FvDFH Figure 12.21

  • 7/29/2019 Soild Modelling

    5/7

    5

    ThomasFunkhouser2000

    Quadtree Boolean Operations

    A B

    A BA B

    FvDFH Figure 12.24 ThomasFunkhouser2000

    Quadtree Display

    Extend voxel methods$ Slicing

    $ Isosurface extraction

    $ Ray casting

    Finding neighbor cell requires

    traversal of hierarchy (O(1))

    FvDFH Figure 12.25

    ThomasFunkhouser2000

    Solid Modeling Representations

    Voxels

    Quadtrees & Octrees

    Binary space partitions

    Constructive solid geometry

    ThomasFunkhouser2000

    Binary Space Partitions (BSPs)

    Recursive partition of space by planes$ Mark leaf cells as inside or outside object

    a

    b

    c

    d

    e

    f

    1

    2

    3

    7

    4

    5

    6

    a

    b c

    de

    f

    g

    Object

    a

    b

    cde

    f

    1

    2

    3

    4

    5

    6

    7

    Binary Spatial Partition

    Binary Tree

    Naylor

    ThomasFunkhouser2000

    BSP Fundamentals

    Single geometric operation

    Partition a convex region by a hyperplane

    Single combinatorial operation

    Two child nodes added as leaf nodes

    R-

    R+

    InitialTree

    Homogeneousregion

    Partitionedregion

    R

    NewtreeR

    h

    R+R-

    R- +

    Naylor ThomasFunkhouser2000

    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

    IN

    OUT

    OUT

    OUT

    on on

    on

    1st level Approximation

    IN

    OUT

    OUT

    OUT

    out

    out

    outinin

    in

    2nd level Approximation

    on

    on

    on on

    on

    on

    Naylor

  • 7/29/2019 Soild Modelling

    6/7

    6

    ThomasFunkhouser2000

    BSP Acquisition

    Must construct a good binary search structure$ Efficiency comes from logarithmic tree depth

    IN

    OUTOUT

    OUT

    out

    out

    outinin

    in

    Bad Good

    Naylor ThomasFunkhouser2000

    BSP Boolean Operations

    Divide and conquer$ Each node V corresponds to a convex region

    containingall geometry in the subtree rooted at V

    $ No intersection with bounding volume of V means nointersection with subtree rooted at V

    $ Do detail work only in regions required

    $ Boolean operations grow with O( log n) if good tree

    Naylor

    ThomasFunkhouser2000

    BSP Display

    Visibility ordering$ 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 ThomasFunkhouser2000

    Solid Modeling Representations

    Voxels

    Quadtrees & Octrees

    Binary space partitions

    Constructive solid geometry

    ThomasFunkhouser2000

    Constructive Solid Geometry (CSG)

    Represent solid object as hierarchy ofboolean operations$ Union

    $ Intersection

    $ Difference

    FvDFHFigure 12.27 ThomasFunkhouser2000

    CSG Acquisition

    Interactive modeling programs$ CAD/CAM

    H&B Figure 9.9

  • 7/29/2019 Soild Modelling

    7/7

    7

    ThomasFunkhouser2000

    CSG Boolean Operations

    Create a new CSG node joining subtrees$ Union

    $ Intersection

    $ Difference

    FvDFHFigure 12.27 ThomasFunkhouser2000

    CSG Display & Analysis

    Ray casting

    Circle Box

    Union

    ThomasFunkhouser2000

    Summary

    Accurate No No Some Some

    Concise No No No Yes

    Affine invariant No No Yes Yes

    Easy acquisition Some Some No Some

    Guaranteed validity Yes Yes Yes No

    Efficient boolean operations Yes Yes Yes YesEfficient display No No Yes No

    Voxels

    Octree

    BSP

    CSG

    ThomasFunkhouser2000

    Taxonomy of 3D Representations

    Discrete Continuous

    Combinatorial Functional

    Parametric ImplicitTopological Set Membership

    Voxels

    MeshSubdivision

    BSP TreeCell Complex

    BezierB-Spline

    Algebraic

    Naylor