Modeling
Aaron Bloomfield
CS 445: Introduction to Graphics
Fall 2006
(Slide set originally by Greg Humphreys)
Outline
Acquisition
• Seashells
• Fractals
• Volumes
• Constructive Solid Geometry
• Modeling Programs
Model Construction
Interactive modeling tools
CAD programs
Subdivision surface editors :)
Scanning tools
CAT, MRI, laser, magnetic, robotic arm, etc.
Computer vision
Stereo, motion, etc.
Interactive Modeling Tools
User constructs objects with drawing program
Menu commands, direct manipulation, etc.
CSG, parametric surfaces, quadrics, etc.
Cosmoworlds, SGI
Interactive Modeling Tools
Example: Mechanical CAD
H&B Figure 9.9
Model Construction
Interactive modeling tools
CAD programs
Subdivision surface editors :)
Scanning tools
Laser, magnetic, robotic arm, etc.
Computer vision
Stereo, motion, etc.
Scanning tools
Acquire geometry of objects with active sensors
CAT/MRI
Laser range scanner
Magnetic sensor
Robotic arm etc.
Lorensen Stanford Graphics Laboratory
Scanning tools
Acquire geometry of objects with active sensors
CAT/MRI
Laser range scanner
Magnetic sensor
Robotic arm
etc.
Xp (Xc,Yc)
Laser Range Scanning
Example: 70 scans
Volumetric reconstruction
Stanford Graphics Laboratory
Scanning tools
Acquire geometry of objects with active sensors
CAT/MRI
Laser range scanner
Magnetic sensor
Robotic arm
etc.
Scanning tools
Acquire geometry of objects with active sensors
CAT/MRI
Laser range scanner
Magnetic sensor
Robotic arm
etc.
Computer Vision
Infer 3D geometry from images
Stereo
Motion
Constraints
etc.
Computer Vision
Infer 3D geometry from images
Stereo
Motion
Constraints
etc.
Computer Vision
Infer 3D geometry from images
Stereo
Motion
Constraints
etc.
Debevec96
Procedural Modeling
Goal:
Describe 3D models algorithmically
Best for models resulting from ...
Repeating processes
Self-similar processes
Random processes
Advantages:
Automatic generation
Concise representation
Parameterized classes of models
Outline
• Acquisition
Seashells
• Fractals
• Volumes
• Constructive Solid Geometry
• Modeling Programs
Example: Seashells
Create 3D polygonal surface models of seashells
“Modeling Seashells,”
Deborah Fowler, Hans Meinhardt, and Przemyslaw Prusinkiewicz,
Computer Graphics (SIGGRAPH 92),
Chicago, Illinois, July, 1992, p 379-387.
Fowler et al. Figure 7
Example: Seashells
Sweep generating curve around helico-spiral axis
Helico-spiral definition:
Fowler et al. Figure 1
Example: Seashells
Connect adjacent points to form polygonal mesh
Fowler et al. Figure 6
Example: Seashells
Model is parameterized:
Helico-spiral: z
0
, l z
, r
0
, l r
, N q
, Dq
Generating curve: shape, N c
, l c
Fowler et al. Figure 1
Example: Seashells
Generate different shells by varying parameters
Different helico-spirals
Fowler et al. Figure 2
Example: Seashells
Generate different shells by varying parameters
Different generating curves
Fowler et al. Figure 3
Example: Seashells
Generate many interesting shells with a simple procedural model!
Fowler et al. Figures 4,5,7
Outline
• Acquisition
• Seashells
Fractals
• Volumes
• Constructive Solid Geometry
• Modeling Programs
Fractals
Defining property:
Self-similar with infinite resolution
Mandelbrot Set H&B Figure 10.100
Fractals
Useful for describing natural 3D phenomenon
Terrain
Plants
Clouds
Water
Feathers
Fur
etc.
H&B Figure 10.80
Fractal Generation
Deterministically self-similar fractals
Parts are scaled copies of original
Statistically self-similar fractals
Parts have same statistical properties as original
Deterministic Fractal Generation
General procedure:
Initiator: start with a shape
Generator: replace subparts with scaled copy of original
H&B Figure 10.68
Deterministic Fractal Generation
Apply generator repeatedly
Koch Curve
H&B Figure 10.69
Deterministic Fractal Generation
Useful for creating interesting shapes!
Mandelbrot Figure X
Deterministic Fractal Generation
Useful for creating interesting shapes!
Mandelbrot Figure 46
Deterministic Fractal Generation
Useful for creating interesting shapes!
H&B Figures 75 & 109
Fractal Generation
Deterministically self-similar fractals
Parts are scaled copies of original
Statistically self-similar fractals
Parts have same statistical properties as original
Statistical Fractal Generation
General procedure:
Initiator: start with a shape
Generator: replace subparts with a self-similar random pattern
Random Midpoint Displacement
Statistical Fractal Generation
Example: terrain
H&B Figure 10.83b
Statistical Fractal Generation
Useful for creating mountains
H&B Figure 10.83a
Statistical Fractal Generation
Useful for creating 3D plants
H&B Figure 10.82
Statistical Fractal Generation
Useful for creating 3D plants
H&B Figure 10.79
Outline
• Acquisition
• Seashells
• Fractals
Volumes
• Constructive Solid Geometry
• Modeling Programs
Solid Modeling
Represent solid interiors of objects
Surface may not be described explicitly
SUNY Stony Brook
Visible Human
(National Library of Medicine)
Motivation 1
Some acquisition methods generate solids
Example: CAT scan
Stanford University
Motivation 2
Some applications require solids
Example: CAD/CAM
Intergraph Corporation
Solid Modeling Representations
What makes a good solid representation?
Accurate
Concise
Affine invariant
Easy acquisition
Guaranteed validity
Efficient boolean operations
Efficient display
Lorensen
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
Voxel Acquisition
Scanning devices
MRI
CAT
Simulation
FEM
Stanford University
SUNY Stony Brook
Voxel Storage
O(n 3 ) storage for nxnxn grid
1 billion voxels for 1000x1000x1000
Voxel Boolean Operations
Compare objects voxel by voxel
Trivial
=
=
Voxel Display
Isosurface rendering
Render surfaces bounding volumetric regions of constant value (e.g., density)
Isosurface Visualization
Princeton University
Voxel Display
Slicing
Draw 2D image resulting from intersecting voxels with a plane
Visible Human
(National Library of Medicine)
Voxel Display
Ray casting
Integrate density along rays through pixels
Engine Block
Stanford University
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
Quadtrees & Octrees
Refine resolution of voxels hierarchically
More concise and efficient for non-uniform objects
Uniform Voxels Quadtree
FvDFH Figure 12.21
Quadtree Boolean Operations
A B
A
B A
B
FvDFH Figure 12.24
Quadtree Display
Extend voxel methods
Slicing
Isosurface extraction
Ray casting
Finding neighbor cell requires traversal of hierarchy (O(1))
FvDFH Figure 12.25
Outline
• Acquisition
• Seashells
• Fractals
• Volumes
Constructive Solid Geometry
• Modeling Programs
Constructive Solid Geometry (CSG)
Represent solid object as hierarchy of boolean operations
Union
Intersection
Difference
FvDFH Figure 12.27
CSG Acquisition
Interactive modeling programs
CAD/CAM
H&B Figure 9.9
CSG Boolean Operations
Create a new CSG node joining subtrees
Union
Intersection
Difference
FvDFH Figure 12.27
CSG Display & Analysis
Ray casting
Union
Circle Box
Outline
• Acquisition
• Seashells
• Fractals
• Volumes
• Constructive Solid Geometry
Modeling Programs
Popular rendering programs
3D Studio Max ($3.5k)
Made by Autodesk (makers of CAD programs)
Runs only on Windows (Win32 and Win64)
Movies made w/Max: Incredibles, X-Men, Star Wars III, etc.
Maya ($2k or $6k)
Made by Alias
Originally by SGI
Bought by Autodesk in Oct 2006
Runs on Windows, Linux
Blender (free!)
Others are less well known and less used
3D Studio Max
http://en.wikipedia.org/wiki/Image:3dsmax8Screen shot.jpg
Maya
http://en.wikipedia.org/wiki/Image:Autodesk_Maya
_8.0_win32.png
Blender
http://en.wikipedia.org/wiki/Image:Blender_node_s creen_242a.jpg
Comparison of renderers
http://wiki.cgsociety.org/index.php/Comparison_of_
3d_tools
And a better formatted version …
Elephant’s Dream
Downloadable at http://orange.blender.org/
An open movie
Meaning you can download the Blender files that were used to make it
Made using only open-source software
Blender, GIMP, CinePaint, Inkscape, etc.
Length is 11 minutes (including 90 sec of credits)
That’s 19,800 frames
Took a 2.1 TFLOPS supercomputer cluster 125 days to render
Used Bowie State’s XSeed supercomputer
Took 9 minutes and 2.8 Gb per frame
An “average” high-end PC has only a “few” GFLOPS (not TFLOPS!)
So if you had a 3 Ghz computer w/4 Gb of RAM, it would take over 200 years to render!
Or 3 days per frame
Assuming a 3 Gz computer can do 3 TFLOPS (a generous assumption)