Graphics 3D Object Representation 고려대학교 컴퓨터 그래픽스 연구실 cgvr.korea.ac.kr Graphics Lab @ Korea University Overview CGVR 3D Geometric Primitives Point Line Plane Polygon Sphere 3D Object Representations Raw data Surfaces Solids High-Level Structure cgvr.korea.ac.kr Graphics.
Download
Report
Transcript Graphics 3D Object Representation 고려대학교 컴퓨터 그래픽스 연구실 cgvr.korea.ac.kr Graphics Lab @ Korea University Overview CGVR 3D Geometric Primitives Point Line Plane Polygon Sphere 3D Object Representations Raw data Surfaces Solids High-Level Structure cgvr.korea.ac.kr Graphics.
Graphics
3D Object
Representation
고려대학교 컴퓨터 그래픽스 연구실
cgvr.korea.ac.kr
Graphics Lab @ Korea University
Overview
CGVR
3D Geometric Primitives
Point
Line
Plane
Polygon
Sphere
3D Object Representations
Raw data
Surfaces
Solids
High-Level Structure
cgvr.korea.ac.kr
Graphics Lab @ Korea University
3D Geometric Primitives
CGVR
Point
Line Segment
Polygon
Polyhedron
Curved Surface
Solid Object
Etc.
cgvr.korea.ac.kr
Graphics Lab @ Korea University
3D Point
CGVR
Specifies a Location
Represented by three coordinates
Infinitely small
typedef struct{
Coordinate x;
Coordinate y;
(x, y, z)
Coordinate z;
} Point;
cgvr.korea.ac.kr
Graphics Lab @ Korea University
3D Vector
CGVR
Specifies a Direction and a Magnitude
Represented by three coordinates
Magnitude ||v||=sqrt(dxdx + dydy +dzdz)
Has no location
typedef struct{
(dx1, dy1, dz1)
Coordinate x;
Coordinate y;
Coordinate z;
} Vector;
(dx2, dy2, dz2)
Dot product of two 3D vector
V1 V2 = dx1dx2 + dy1dy2 + dz1dz2
V1 V2 = ||V1||||V2|| cos( )
cgvr.korea.ac.kr
Graphics Lab @ Korea University
3D Line
CGVR
Line Segment with Both Endpoints at Infinity
Parametric representation
P=P1+tV, ( t )
typedef struct{
Point P1;
Vector V;
} Line;
cgvr.korea.ac.kr
V
P1
Graphics Lab @ Korea University
3D Ray
CGVR
Line Segment with One Endpoints at Infinity
Parametric representation
P=P1+tV, ( 0 t )
typedef struct{
Point P1;
Vector V;
} Ray;
cgvr.korea.ac.kr
V
P1
Graphics Lab @ Korea University
3D Line Segment
CGVR
Specifies a Linear Combination of Two Points
Parametric representation
P=P1 + t(P2 - P1), ( 0 t 1 )
typedef struct{
Point P1;
Point P2;
} Segment;
cgvr.korea.ac.kr
P2
P1
Graphics Lab @ Korea University
3D Plane
CGVR
Specifies a Linear Combination of Three Points
Implicit representation
N=(a, b, c)
PN + d = 0, or
ax + by + cz + d = 0
typedef struct{
Vector N;
Distance d;
} Plane;
P1
P3
P2
d
Origin
cgvr.korea.ac.kr
Graphics Lab @ Korea University
3D Polygon
CGVR
Area “Inside” a Sequence of Coplanar Points
Triangle
Quadrilateral
Convex
Star-shaped
Concave
Self-Intersecting
Hole
typedef struct{
Point *Points;
int npoints;
} Polygon;
cgvr.korea.ac.kr
Points are in counter-clockwise order
Graphics Lab @ Korea University
3D Sphere
CGVR
All Points at Distance “r” from Point (cx, cy, cz)
Implicit representation
(x-cx)2 + (y-cy)2 + (z-cz) 2 = r 2
Parametric representation
x= r sin( ) cos( )
y= r sin( ) sin( )
z= r cos( )
cgvr.korea.ac.kr
(cx, cy, cz)
r
Graphics Lab @ Korea University
3D Object Representations
Raw Data
Point cloud
Range image
Polygon soup
Surfaces
CGVR
Mesh, Subdivision, Parametric, Implicit
Solids
Voxel, BSP tree, CSG, Sweep
cgvr.korea.ac.kr
Graphics Lab @ Korea University
Point Cloud
CGVR
Unstructured Set of 3D Point Samples
Acquired from range finder, computer vision, etc
cgvr.korea.ac.kr
Graphics Lab @ Korea University
Range Image
CGVR
Set of 3D Points Mapping to Pixels of Depth
Image
Acquired from range scanner
Range Image
cgvr.korea.ac.kr
Tessellation
Range Surface
Graphics Lab @ Korea University
Polygon Soup
CGVR
Unstructured Set of Polygons
Created with interactive modeling systems
cgvr.korea.ac.kr
Graphics Lab @ Korea University
3D Object Representations
Raw Data
CGVR
Point cloud, Range image, Polygon soup
Surfaces
Mesh
Subdivision
Parametric
Implicit
Solids
Voxel, BSP tree, CSG, Sweep
cgvr.korea.ac.kr
Graphics Lab @ Korea University
Mesh
CGVR
Connected Set of Polygons (Usually Triangles)
May not be closed
cgvr.korea.ac.kr
Graphics Lab @ Korea University
Subdivision Surfaces
CGVR
Coarse Mesh & Subdivision Rule
Define smooth surface as limit of sequence of
refinements
cgvr.korea.ac.kr
Graphics Lab @ Korea University
Parametric Surfaces
CGVR
Tensor Product Spline Patches
Careful constraints to maintain continuity
cgvr.korea.ac.kr
Graphics Lab @ Korea University
Implicit Surface
CGVR
Points satisfying: F(x,y,z) = 0
Polygonal Model
cgvr.korea.ac.kr
Implicit Model
Graphics Lab @ Korea University
3D Object Representations
Raw Data
Point cloud, Range image, Polygon soup
Surfaces
CGVR
Mesh, Subdivision, Parametric, Implicit
Solids
Voxel
BSP tree
CSG
Sweep
cgvr.korea.ac.kr
Graphics Lab @ Korea University
Voxels
CGVR
Uniform Grid of Volumetric Samples
Acquired from CAT, MRI, etc.
cgvr.korea.ac.kr
Graphics Lab @ Korea University
BSP Tree
CGVR
Binary Space Partition with Solid Cells Labeled
Constructed from polygonal representations
a
1
g
a
a
6
f
f
5 e
e
b
d
c
b
7
4 d
b
g
c
3
c
2
Object
cgvr.korea.ac.kr
Binary Spatial Partition
d
1
2
3
e
4
f
5
6
7
BSP Tree
Graphics Lab @ Korea University
CSG
CGVR
Hierarchy of Boolean Set Operations (Union,
Difference, Intersect) Applied to Simple Shapes
cgvr.korea.ac.kr
Graphics Lab @ Korea University
Sweep
CGVR
Solid Swept by Curve Along Trajectory
Constructing a Torus
using Rotational Sweep
cgvr.korea.ac.kr
Graphics Lab @ Korea University
Summary
CGVR
Taxonomy of 3D Object Representations
Discrete
Continuous
Voxel
Combinational
Topological
Mesh
Subdivision
cgvr.korea.ac.kr
Set Membership
BSP Tree
Functional
Parametric
Bezier
B-Spline
Implicit
Algebraic
Graphics Lab @ Korea University