of 35
8/18/2019 Representations of Solids
1/35
Representations of Solids
Martin Madaras
FMFI UK
8/18/2019 Representations of Solids
2/35
Motivation
Data structures for model representation What is the most suitable representation to choose ?
Memory efficiency
Algorithms
Modification Rendering
8/18/2019 Representations of Solids
3/35
Overview
Primitive instancing Boundary representation (B-rep)
Constructive Solid Geometry (CSG )
Spatial-partitioning representation
Sweep Representation
Function representation (F-rep)
Point representation
8/18/2019 Representations of Solids
4/35
Primitive instancing
8/18/2019 Representations of Solids
5/35
B-rep
8/18/2019 Representations of Solids
6/35
B-rep (example)
8/18/2019 Representations of Solids
7/35
B-rep (2-manifold)
8/18/2019 Representations of Solids
8/35
B-rep (Euler’s formula for polyhedra)
8/18/2019 Representations of Solids
9/35
B-rep (generalized Euler’s formula)
8/18/2019 Representations of Solids
10/35
B-rep (Triangle mesh)
Break polygons into triangles Strip, Fan : n-2 triangles
List : n/3 triangles
8/18/2019 Representations of Solids
11/35
B-rep (winged edge)
Winged edge vertices of this edge
its left and right faces
predecessor and successor of this edge when traversing its left
face predecessor and successor of this edge when traversing its
right face
8/18/2019 Representations of Solids
12/35
B-rep (quad edge)
Quad edge
dual graph
single edge, in a closed polygonal mesh topology, sits between exactlytwo faces and exactly two vertices
edge structure
2 faces 2 vertices
4 edges
8/18/2019 Representations of Solids
13/35
B-rep (DCEL)
Double Connected Edge List Half edge
Starting vertex
Pointer to left face
Pointer to opposite half edge (Twin)
Pointer to half edge starting at the ending vertex, traveling
counterclockwise around the boundary
Limitation
Only orientable 2-manifols
8/18/2019 Representations of Solids
14/35
Beziér patches
Complicated theory, low data complexity Easy to modify
Intuitive control for GUI
Difficult to render directly
8/18/2019 Representations of Solids
15/35
CSG
8/18/2019 Representations of Solids
16/35
CSG (rendering)
Raycasting
Union :
Intersection: Difference (Obj2 – Obj1) :
)()()( 2121 LO LO LOO
8/18/2019 Representations of Solids
17/35
CSG (example)
8/18/2019 Representations of Solids
18/35
Spatial partitioning
Solid is decomposed into a collection of nonintersecting solids thatare more primitive than the original solid
Primitives may vary in type, size, position, parameterization andorientation
Cell decomposition
Spatial-occupancy enumeration
Octrees Binary space-partitioning trees
8/18/2019 Representations of Solids
19/35
Spatial partitioning (Cell decomposition)
8/18/2019 Representations of Solids
20/35
Spatial partitioning
Spatial-occupancy enumeration
8/18/2019 Representations of Solids
21/35
Spatial partitioning (Quadtree)
8/18/2019 Representations of Solids
22/35
Spatial partitioning (Octree)
8/18/2019 Representations of Solids
23/35
Spatial partitioning (BSP)
8/18/2019 Representations of Solids
24/35
Sweep representation
8/18/2019 Representations of Solids
25/35
F-rep
8/18/2019 Representations of Solids
26/35
F-rep (Blobby objects)
Implicit form only Natural shape blending
Used to represent molecular shapes, liquid and
melting objects, human body
8/18/2019 Representations of Solids
27/35
F-rep (polygon to function)
8/18/2019 Representations of Solids
28/35
F-rep (P2F - 2D polygon)
8/18/2019 Representations of Solids
29/35
F-rep (P2F - example)
8/18/2019 Representations of Solids
30/35
8/18/2019 Representations of Solids
31/35
F-rep (metamorphosis 1)
8/18/2019 Representations of Solids
32/35
F-rep (metamorphosis 2)
8/18/2019 Representations of Solids
33/35
F-rep (collision detection)
8/18/2019 Representations of Solids
34/35
Point representation
Oriented points (Surfels)
Point based rendering techniques
8/18/2019 Representations of Solids
35/35
Conclusion
Representations
Volumetric
describes solid (CSG, Octree, BSP, F-rep)
Boundary
describes surfaces of the solid (polygonal meshes, splines, F-rep)
Oriented points (Surfels)
Continues
Splines, F-rep
Discrete
polygonal meshes, Octree
(complexity of data and algorithms ???)