Download Hierarchical Triangular Decomposition for Data Structures - Notes | CMSC 420 and more Study notes Data Structures and Algorithms in PDF only on Docsity!
SURFACE DATA
HIERARCHICAL TRIANGULAR DECOMPOSITION
- Approximate surface S by planar triangular patches whose vertices are a subset of data points defining S
- For each patch, compute an approximation error
- maximum error of the data points with projections on the x - y plane overlapping the projection of the patch on the x - y plane
- subdivide further if a predefined tolerance is exceeded
- Types
- ternary (De Floriani, Falcidieno, Nagy, and Pienovi)
- use internal point with maximum deviation and decompose the triangle into three triangles by joining it to the vertices
- surface is continuous at every level
- triangles are thin and elongated
- quaternary (Gomez and Guzman)
- select three points on the sides of the triangle and form four new triangles by connecting them
- each triangle can be adjacent to many triangles
- interpolating surface is not con- tinuous unless all triangles are split uniformly—i.e., the result is a complete quadtree
- good when points are drawn from a uniformly spaced grid
b RESTRICTED QUADTREE (VON HERZEN/BARR)
- All 4-adjacent blocks are either of equal size or of ratio 2:
Note: also used in finite element analysis to adptively refine an element as well as to achieve element compatibility (termed h-refinement by Kela, Perucchio, and Voelcker)
r z
- 8-triangle decomposition rule
- decompose each block into 8 triangles (i.e., 2 triangles per edge)
- unless the edge is shared by a larger block
- in which case only 1 triangle is formed
g
- 4-triangle decomposition rule
- decompose each block into 4 triangles (i.e., 1 triangle per edge)
- unless the edge is shared by a smaller block
- in which case 2 triangles are formed along the edge
- Prefer 8-triangle rule as it is better for display applications (shading)
v
PROPERTY SPHERES (FEKETE)
- Approximation of spherical data
- Uses icosahedron which is a Platonic solid
- 20 faces—each is a regular triangle
- largest possible regular polyhedron
2D PRISM TREE (PONCE/FAUGERAS)
- Hierarchical representation of an approximation used to model surfaces of 3d polyhedral objects with no holes
- Based on polyhedral approximation
- initially model by a triangle with vertices on the surface so surface is decomposed into three segments
- for each segment of the surface pick the point M at a maximum distance from the triangle
- if the distance from M is greater than a predefined threshold, then subdivide into two triangles
- repeat until all approximations are within threshold
- Can be represented as a tree structure
- Approximate each boundary segment by a quadrilateral
- easier to manipulate a boundary (e.g., detecting inter- sections between boundaries of adjacent objects)
- result is 2d prism tree
AB BC CA
AD BD BE CE CF
AF
AG DG FH AH
H^ A G^ ABC
D
B
E
C
F
E
F
H A^ G
D
C (^) B
(^1) sf
3D PRISM TREE: CONSTRUCTION
- Use tetrahedra instead of triangles
- start with a triangle that splits the surface into 2 segments
- for each segment pick a point on the surface at a maximum distance from the triangle
- results in two tetrahedra which is a triangular bipyramid (= hexahedron)
b
2 r
sf
- decompose the triangular faces into tetrahedra
3 z
sf
unless
- the common edge AB between 2 adjacent triangles T 1 and T 2 is such that the approximation of the surface formed by them is not within a specified tolerance A
T 1 T 2
B
M 1 M 2
(^4) sf g
- in this case, remove the common edge between them and replace it and triangles T 1 and T 2 by 4 new triangles with vertices that are the remaining vertices of T 1 and T 2 (i.e., M 1 and M 2 ) and a new point Mn
- 4 new triangles M 1 A M n, M 2 A M n, M 1 B M n, and M 2 B M n where M n satisfies
a. being on the surface b. it is on the plane that bisects the 2 triangles that are being replaced c. of all points satisfying a and b, it is the furthest point from the removed edge
A
B
M 1 M 2
Mn
COMPARISON OF PRISM AND STRIP TREES
- Approximation of boundary segments
- strip tree uses rectangles while the prism tree uses trapezoids (truncated tetrahedra)
- for convex objects the interiors of the trapezoids are disjoint while adjacent ones have common edges (faces)
- disjointness and common boundaries rarely arise in a strip tree
- Shape of the approximating trapezoid for a boundary segment S
- depends on the line (triangle) that approximates the segments adjacent to S as well as on the level of the tree at which they are found
- shape of rectangles used in the strip tree are indepen- dent of the approximations of the neighboring seg- ments and of their level
sf
- Test for number of pixel centers spanned by a patch is based on an approximation by a polygon connecting the patch’s corners
- Recursively decompse each patch into subpatches until the subpatches are so small that they only span the center of one pixel (or can be shown to liie outside the display region)
- Can represent by a collection of parametric bicubic surface patches
1 b
I
DISPLAYING CURVED SURFACES (CATMULL)
2 r
A
B
C
D
quadrilateral ABCD approximates patch ABCD
3 z
4 g
F
G H
E
decompose ABCD into four quadrilateral patches
5 r
J K
L
M N
subdivide further but no distinction between subpatches and their quadrilateral approximations
6 g
each subpatch spans at most one pixel center
7 v
raster image resulting from the decomposition