Lecture-4
Lecture-4
1
Blender demo (musimduit)
` 2
Syllabus
I. Image processing
II. Modeling
III. Rendering
IV. Animation Rendering
(Michael Bostock, CS426, Fall99)
Image Processing
(Rusty Coleman, CS426, Fall99)
Modeling
(Denis Zorin, CalTech) Animation
(Angel, Plate 1)
3
What is 3D Modeling?
4
Modeling
• How do we ...
• Represent 3D objects in a computer?
• Acquire computer representations of 3D objects?
• Manipulate these representations?
5
Modeling Background
6
3D Point
• Specifies a location
• Represented by three coordinates
• Infinitely small
typedef struct {
Coordinate x;
Coordinate y;
Coordinate z;
} Point; (x,y,z)
Origin
7
3D Vector
8
3D Vector
(dx1,dy1,dz1)
Q
(dx2,dy2 ,dz2)
9
3D Orthogonality
(dx1,dy1,dz1)
90°
(dx2,dy2 ,dz2)
10
3D Vector
(dx1,dy1,dz1)
Q
(dx2,dy2 ,dz2)
V1xV2
11
3D Vector
(dx1,dy1,dz1)
Q
(dx2,dy2 ,dz2)
V1xV2
12
3D Line Segment
P1
Origin
13
3D Ray
P1
Origin
14
3D Line
V
P1
Origin
15
3D Plane
P2 P3
P1
Origin 16
3D Plane
Origin 17
3D Polygon
• Set of points “inside” a sequence of coplanar points
typedef struct {
Point *points;
int npoints;
} Polygon;
18
3D Object Representations
Solidworks
How about this one?
20
3D Object Representations
• Points • Solids
• Range image • Voxels
• Point cloud • BSP tree
• CSG
• Surfaces • Sweep
• Polygonal mesh
• Subdivision • High-level structures
• Parametric • Scene graph
• Implicit • Application specific
22
Equivalence of Representations
• Thesis:
• Each representation has enough expressive power
to model the shape of any geometric object
23
Why Different Representations?
24
Why Different Representations?
USC
Indiana
University 26
Why Different Representations?
27
Why Different Representations?
Autodesk
28
Why Different Representations?
29
Why Different Representations?
30
Why Different Representations?
31
DGP course notes, Technion
Why Different Representations?
33
Why Different Representations?
IGL
37
Why Different Representations?
38
Why Different Representations?
39
Why Different Representations?
Animation
Buffet
40
Why Different Representations?
• Points • Solids
• Range image • Voxels
• Point cloud • BSP tree
• CSG
• Surfaces • Sweep
• Polygonal mesh
• Subdivision • High-level structures
• Parametric • Scene graph
• Implicit • Application specific
43
3D Object Representations
• Points • Solids
• Range image • Voxels
• Point cloud • BSP tree
• CSG
• Surfaces • Sweep
• Polygonal mesh
• Subdivision • High-level structures
• Parametric • Scene graph
• Implicit • Application specific
44
Range Image
Cyberware
Stanford
Range Image Tesselation Range Surface
Brian Curless
SIGGRAPH 99
Course #4 Notes 45
Point Cloud
• Points • Solids
• Range image • Voxels
• Point cloud • BSP tree
• CSG
• Surfaces • Sweep
• Polygonal mesh
• Subdivision • High-level structures
• Parametric • Scene graph
• Implicit • Application specific
47
Polygonal Mesh
v u
x = Fx(u,v)
y = Fy(u,v)
z = Fz(u,v)
Bill Lorensen
SIGGRAPH 99
Course #4 Notes
51
3D Object Representations
• Points • Solids
• Range image • Voxels
• Point cloud • BSP tree
• CSG
• Surfaces • Sweep
• Polygonal mesh
• Subdivision • High-level structures
• Parametric • Scene graph
• Implicit • Application specific
52
Voxel grid
Thomas Diewald 54
BSP Tree
b 1
1 a
a g 6 2
f c
f 3
e d 5 e d 7 c d 3
c 4 4 e
b 2 b
5 f
Object Binary Spatial Partition
6 7
Binary Tree
Naylor
55
CSG
• Points • Solids
• Range image • Voxels
• Point cloud • BSP tree
• CSG
• Surfaces • Sweep
• Polygonal mesh
• Subdivision • High-level structures
• Parametric • Scene graph
• Implicit • Application specific
58
Application Specific
Apo A-1
(Theoretical Biophysics Group,
University of Illinois at Urbana-Champaign)
Architectural Floorplan
(CS Building, Princeton University)
59
Taxonomy of 3D Representations
3D Shape
Discrete Continuous
Voxels,
Point sets Combinatorial Functional
Naylor
60
Equivalence of Representations
• Thesis:
• Each representation has enough expressive power
to model the shape of any geometric object
61
Computational Differences
• Efficiency
• Representational complexity (e.g. surface vs. volume)
• Computational complexity (e.g. O(n2) vs O(n3) )
• Space/time trade-offs (e.g. tree data structures)
• Numerical accuracy/stability (e.g. degree of polynomial)
• Simplicity
• Ease of acquisition
• Hardware acceleration
• Software creation and maintenance
• Usability
• Designer interface vs. computational engine
62
Upcoming Lectures
• Points • Solids
• Range image • Voxels
• Point cloud • BSP tree
• CSG
• Surfaces • Sweep
• Polygonal mesh
• Subdivision • High-level structures
• Parametric • Scene graph
• Implicit • Application specific
63