0% found this document useful (0 votes)
16 views

Lecture-4

The document outlines the syllabus and key concepts of a 3D Modeling course at Princeton University, covering topics such as image processing, modeling, rendering, and animation. It discusses various 3D object representations, including points, solids, and surfaces, and emphasizes the importance of different representations for efficiency in tasks like acquisition and rendering. The document also highlights the equivalence of representations and the computational differences in efficiency, simplicity, and usability.

Uploaded by

Rakibul H. RaFi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
16 views

Lecture-4

The document outlines the syllabus and key concepts of a 3D Modeling course at Princeton University, covering topics such as image processing, modeling, rendering, and animation. It discusses various 3D object representations, including points, solids, and surfaces, and emphasizes the importance of different representations for efficiency in tasks like acquisition and rendering. The document also highlights the equivalence of representations and the computational differences in efficiency, simplicity, and usability.

Uploaded by

Rakibul H. RaFi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 62

3D Modeling

COS 426, Spring 2022


Princeton University
Felix Heide

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?

• Topics in computer graphics


• Imaging = representing 2D images
• Modeling = representing 3D objects
• Rendering = constructing 2D images from 3D models
• Animation = simulating changes over time

4
Modeling

• How do we ...
• Represent 3D objects in a computer?
• Acquire computer representations of 3D objects?
• Manipulate these representations?

Stanford Graphics Laboratory H&B Figure 10.46

5
Modeling Background

• Scene is usually approximated by 3D primitives


• Point
• Vector
• Line segment
• Ray
• Line
• Plane
• Polygon

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

• Specifies a direction and a magnitude


• Represented by three coordinates
• Magnitude ||V|| = sqrt(dx ∙ dx + dy ∙ dy + dz ∙ dz)
• Has no location
typedef struct { (dx,dy,dz)
Coordinate dx;
Coordinate dy;
Coordinate dz;
} Vector;

8
3D Vector

• Dot product of two 3D vectors


• V1·V2 = ||V1 || || V2 || cos(Q)

(dx1,dy1,dz1)

Q
(dx2,dy2 ,dz2)

9
3D Orthogonality

• Dot product of two 3D vectors


• V1·V2 = ||V1 || || V2 || cos(p/2) = 0

(dx1,dy1,dz1)

90°
(dx2,dy2 ,dz2)

10
3D Vector

• Cross product of two 3D vectors


• V1 x V2 = vector perpendicular to both V1 and V2
• ||V1 x V2|| = ||V1 || || V2 || sin(Q)

(dx1,dy1,dz1)

Q
(dx2,dy2 ,dz2)

V1xV2
11
3D Vector

• Cross product of two 3D vectors


• V1 x V2 = vector perpendicular to both V1 and V2
• ||V1 x V2|| = ||V1 || || V2 || sin(Q)

(dx1,dy1,dz1)

Q
(dx2,dy2 ,dz2)

V1xV2
12
3D Line Segment

• Linear path between two points


• Parametric representation:
• P = P1 + t (P2 - P1), (0  t  1)
typedef struct {
Point P1;
Point P2;
} Segment; P2

P1

Origin
13
3D Ray

• Line segment with one endpoint at infinity


• Parametric representation:
• P = P1 + t V, (0 <= t < )
typedef struct {
Point P1;
Vector V;
} Ray;

P1

Origin
14
3D Line

• Line segment with both endpoints at infinity


• Parametric representation:
• P = P1 + t V, (- < t < )
typedef struct {
Point P1;
Vector V;
} Line;

V
P1

Origin
15
3D Plane

• Defined by three points in 3D space

P2 P3

P1

Origin 16
3D Plane

• A linear combination of three points


• Implicit representation:
• P·N - d = 0, or
• N· (P – P1)= 0, or N = (a,b,c)
• ax + by + cz + d = 0
typedef struct {
Vector N;
Distance d; P2 P3
} Plane;

• N is the plane “normal” P1


• Unit-length vector d
• Perpendicular to plane

Origin 17
3D Polygon
• Set of points “inside” a sequence of coplanar points
typedef struct {
Point *points;
int npoints;
} Polygon;

Points are in counter-clockwise order

18
3D Object Representations

How can this object be represented in a computer?


19
3D Object Representations

Solidworks
How about this one?
20
3D Object Representations

This one? FumeFx


21
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

• It is possible to perform all geometric operations


with any representation
• Analogous to Turing-equivalence
• Computers and programming languages are
Turing-equivalent, but each has its benefits…

23
Why Different Representations?

Efficiency for different tasks


• Acquisition
• Rendering
• Analysis
• Manipulation
• Animation

→ Data structures determine algorithms

24
Why Different Representations?

Efficiency for different tasks


• Acquisition
• Range Scanning
• Rendering
• Analysis
• Manipulation
• Animation

DGP course notes, Technion 25


Why Different Representations?

Efficiency for different tasks


• Acquisition
• Computer Vision
• Rendering
• Analysis
• Manipulation
• Animation

USC
Indiana
University 26
Why Different Representations?

Efficiency for different tasks


• Acquisition
• Tomography
• Rendering
• Analysis
• Manipulation
• Animation

DGP course notes, Technion

27
Why Different Representations?

Efficiency for different tasks


• Acquisition
• Rendering
• Intersection
• Analysis
• Manipulation
• Animation

Autodesk
28
Why Different Representations?

Efficiency for different tasks


• Acquisition
• Rendering
• Analysis
• Curvature,
smoothness
• Manipulation
• Animation

DGP course notes, Technion

29
Why Different Representations?

Efficiency for different tasks


• Acquisition
• Rendering
• Analysis
• Fairing
• Manipulation
• Animation

DGP course notes, Technion

30
Why Different Representations?

Efficiency for different tasks


• Acquisition
• Rendering
• Analysis
• Texture mapping
• Manipulation
• Animation

31
DGP course notes, Technion
Why Different Representations?

Efficiency for different tasks


• Acquisition
• Rendering
• Analysis
• Reduction
• Manipulation
• Animation

DGP course notes, Technion 32


Why Different Representations?

Efficiency for different tasks


• Acquisition
• Rendering
• Analysis
• Structure
• Manipulation
• Animation

DGP course notes, Technion

33
Why Different Representations?

Efficiency for different tasks


• Acquisition
• Rendering
• Analysis
• Symmetry
detection
• Manipulation
• Animation

DGP course notes, Technion 34


Why Different Representations?

Efficiency for different tasks


• Acquisition
• Rendering
• Analysis
• Correspondence
• Manipulation
• Animation

DGP course notes, Technion


35
Why Different Representations?

Efficiency for different tasks


• Acquisition
• Rendering
• Analysis
• Segmentation
• Manipulation
• Animation

DGP course notes, Technion


36
Why Different Representations?

Efficiency for different tasks


• Acquisition
• Rendering
• Analysis
• Manipulation
• Deformation
• Animation

IGL

37
Why Different Representations?

Efficiency for different tasks


• Acquisition
• Rendering
• Analysis
• Manipulation
• Deformation
• Animation

DGP course notes, Technion

38
Why Different Representations?

Efficiency for different tasks


• Acquisition
• Rendering
• Analysis
• Manipulation
• Healing
• Animation

DGP course notes, Technion

39
Why Different Representations?

Efficiency for different tasks


• Acquisition
• Rendering
• Analysis
• Manipulation
• Animation
• Rigging

Animation
Buffet
40
Why Different Representations?

Efficiency for different tasks


• Acquisition
• Rendering
• Analysis
• Manipulation
• Animation
• Simulation

Physically Based Modelling course notes, USC 41


Why Different Representations?

Efficiency for different tasks


• Acquisition
• Rendering
• Analysis
• Manipulation
• Animation
• Fabrication

DGP course notes, Technion 42


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

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

Set of 3D points mapping to pixels of depth image


• Can be acquired from range scanner

Cyberware

Stanford
Range Image Tesselation Range Surface
Brian Curless
SIGGRAPH 99
Course #4 Notes 45
Point Cloud

Unstructured set of 3D point samples


• Acquired from range finder, computer vision, etc

Velodyne Lidar Scan


46
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

47
Polygonal Mesh

Connected set of polygons (often triangles)

Stanford Graphics Laboratory


48
Subdivision Surface

Coarse mesh & subdivision rule


• Smooth surface is limit of sequence of refinements

Zorin & Schroeder


SIGGRAPH 99
Course Notes 49
Parametric Surface

Tensor-product spline patches


• Each patch is parametric function
• Careful constraints to maintain continuity

v u
x = Fx(u,v)
y = Fy(u,v)
z = Fz(u,v)

FvDFH Figure 11.44


50
Implicit Surface

Set of all points satisfying: F(x,y,z) = 0

Polygonal Model Implicit Model

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

Uniform volumetric grid of samples:


• Occupancy
(object vs. empty space)
• Density
• Color
FvDFH Figure 12.20
• Other function
(speed, temperature, etc.)

• Often acquired via


simulation or from
CAT, MRI, etc.

Stanford Graphics Laboratory 53


Octree

The adaptive version of the voxel grid


• Significantly more space efficient
• Makes operations more cumbersome

Thomas Diewald 54
BSP Tree

Hierarchical Binary Space Partition with


solid/empty cells labeled
• Constructed from polygonal representations
a

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

Constructive Solid Geometry: set operations (union, difference,


intersection) applied to simple shapes

FvDFH Figure 12.27 H&B Figure 9.9


56
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

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

Topological Set Membership Parametric Implicit

Mesh BSP Tree Bezier Algebraic


Subdivision Cell Complex B-Spline

Naylor
60
Equivalence of Representations

• Thesis:
• Each representation has enough expressive power
to model the shape of any geometric object

• It is possible to perform all geometric operations


with any representation
• Analogous to Turing-equivalence
• Computers and programming languages are
Turing-equivalent, but each has its benefits…

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

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy