1 ssd99 tutorial multiresolution in terrain modeling leila de floriani, enrico puppo university of...
TRANSCRIPT
1SSD99 Tutorial
Multiresolution in
Terrain Modeling
Leila De Floriani, Enrico Puppo
University of Genova
Genova (Italy)
2SSD99 Tutorial
Outline
Generalities on Terrain Models
Data Structures
Compression Techniques
Algorithms for Terrain Generalization
Multiresolution Representations:
A general framework for multiresolution
Classification and review of multiresolution models
Applications
3SSD99 Tutorial
Terrain Data
Elevation data are given at a finite set of points in a geo-referenced domain 2D locations + elevation define a sample data set
Points can be: regularly spaced in the x and y coordinates irregularly distributed
Terrain data acquisition
Ground survey methods using electronic tacheometers Photogrammetric methods working on aerial and satellite images SAR interferometry Digitization of existing contour maps (through contour following)
4SSD99 Tutorial
Digital Terrain Model (DTM)
A terrain can be modeled in the continuous as a surface
described by a function z=f(x,y) defined in a two-dimensional
domain D
DTM: discrete model of a terrain based on a given set of
elevation data
DTM characterized by
a subdivision of the domain into two-dimensional cells (usually
with vertices at the sample points)
a collection of interpolating functions defined at cells of the
subdivision
5SSD99 Tutorial
Classification of DTMs
Classification based on the topology of the underlying subdivision: Regular Square Grids (RSGs) Triangulated Irregular Networks (TINs)
6SSD99 Tutorial
Regular Square Grids (RSGs)
The domain subdivision is a rectangular grid For each rectangle r in the grid:
elevations of vertices of r are interpolated by linear functions along each edge of r
a bilinear function is obtained as the tensor product of such four linear functions
Straightforward data structures and manipulation techniques
Only regularly spaced data resampling required Not adaptive to characteristics of the surface massive data
sets at high resolution are necessary to achieve accuracy
7SSD99 Tutorial
Triangulated Irregular Networks (TINs)
The domain subdivision is a triangulation
For each triangle t, elevations of its three vertices are
interpolated by a linear function
Capability of adapting to the roughness of terrain (adaptive models)
Possibility of explicitly including relevant points (peaks and pits) and lines (ridges and valleys)
Ease of update
More complex data structures and manipulation techniques
8SSD99 Tutorial
Data Structures
9SSD99 Tutorial
Data Structures for RSGs
The basic data structure is a rectangular matrix (raster) of elevation values:
Geographic coordinates of each entry are computed directly from its position in the matrix
Elevation is given by the value stored at the entry
More sophisticated data structures are inherited from the literature on digital images for:
Compression
Block decomposition
Hierarchical decomposition
10SSD99 Tutorial
Data Structures for TINs
Two types of information encoded:
Geometrical
position in space of the vertices
surface normals at the vertices (optional)
Topological
mesh connectivity
adjacency relations among triangles of the mesh (optional)
11SSD99 Tutorial
...Data Structures for TINs...
List of triangles:
It maintains an explicit list of triangles composing the mesh
For each triangle, it maintains its three vertices by explicitly encoding the geometrical information associated with the vertices
Connectivity described through a relation between a triangle and all its vertices
Drawback:
Each vertex is repeated for all triangles incident in it
Storage cost:
In a triangle mesh with n vertices, there are about 2n triangles
Total cost of data structure: about 18n floats, if geometric information associated with a vertex is just its position in space
12SSD99 Tutorial
...Data Structures for TINs...
Indexed data structure:
List of vertices + list of triangles + relation between triangles and vertices
For each vertex: its geometrical information
For each triangle: references to its three vertices
Drawback:
No adjacency information
Storage cost:
6n log n bits +
3n floats (cost of storing geometrical information)
since a vertex reference for a triangle requires log n bits
13SSD99 Tutorial
...Data Structures for TINs...
Indexed data structure with adjacencies:
list of vertices (with their geometrical information) + list of triangles
for each triangle: references to its three vertices + references to its three adjacent triangles
Storage cost:
(12n log n + 6n) bits + 3n floats (cost of storing geometrical information), since each triangle reference requires (log n + 1) bits
t
t1
t2t3
P1
P2
P3
t: (P1,P2,P3) (t1, t2, t3)
14SSD99 Tutorial
...Data Structures for TINs...
Comparison of the three data structures:
n = number of vertices, let one float = 32 bits
list of triangles: 18n floats
if n = 216 ==> 18*216 floats = 578*216 bits
indexed data structure: 6n log n bits + 3n floats
if n = 216 ==> 96*216 bits+ 3*216 floats = 150*216 bits
indexed data structure with adjacencies: (12n log n + 6n) bits+ 3n floats
if n = 216 ==> 198*216 bits + 3*216 floats = 252*216 bits
15SSD99 Tutorial
Compression Techniques
16SSD99 Tutorial
Why Terrain Compression?
Availability of large terrain datasets in Geographic Information Systems
Need for:
Faster transmission of terrain models
Faster I/O of terrain models from/to disk
Enhanced rendering performances: limitations on on-board memory and on data transfer speed
Lower costs of memory and of auxiliary storage
Objective: design compact structures for encoding a terrain model as a
sequence of bits (bitstream)
17SSD99 Tutorial
...Why Terrain Compression?...
Compression methods for TINs aimed at two complementary
tasks:
Compression of geometry: efficient encoding of numerical
information attached to the vertices, i.e., position, surface normal,
color, texture parameters
Compression of mesh connectivity: efficient encoding of the
mesh topology
18SSD99 Tutorial
Compression of Geometry [Deering, 1995; Chow, 1997]
Positions, normals and scalar attributes quantized to significantly fewer than 32 bits (single-precision IEEE floating point) with little loss in accuracy
Example: quantization for position information:
Geometry normalized to a unit cube
Positions quantized by truncating the less significant bits of position components
Optimizations:
Positions are "delta-encoded”: just the difference between a vertex position and that of its predecessor in the bitstream is encoded
Quantization assignment can be done by partitioning the triangle mesh into parts of similar detail based on triangle size and curvature
19SSD99 Tutorial
Compression of Connectivity
Two kinds of compression techniques:
Direct techniques:
Goal: minimizing the number of bits needed to encode connectivity
Progressive techniques:
Goal: an interrupted bitstream provides a description of the whole terrain at a lower level of detail
20SSD99 Tutorial
Direct Methods
Compression methods for rendering:
Triangle strips (and triangle fans) used in graphics API (e.g., OpenGL)
Generalized triangle meshes [Deering 1995; Evans et al., 1996; Chow, 1997; Bar Yehuda and Gotsman 1996]
Topological surgery [Taubin and Rossignac, 1996]
A compression method for transmission:
Sequence of triangles in a shelling order [De Floriani, Magillo and Puppo, 1998]
21SSD99 Tutorial
...Direct Methods... Triangle Strips
Each strip is a sequences of vertices Each triangle in a strip has its vertices at three
consecutive positions A TIN is encoded as a collection of strips
Drawbacks: Each vertex is encoded twice on average It is difficult to obtain a small number of long strips
[Evans et al., 1996]
1
2
3
4
5
6
7
. . . .
22SSD99 Tutorial
...Direct Methods...
Generalized Triangle Meshes [Deering, 1995]
Sequence of vertices with alternate strip-like and fan-like behavior
Behavior at each vertex specified by a bit code A small buffer allows to reuse some past vertices (indexing) A TIN is encoded as a collection of generalized strips Cost: ~11 bits per vertex for connectivity
1
2
3
4
5
6
7
. . . .
2
6
5
1
4
3
. . . .Strip-like(zig-zag) Fan-like
(turning)
23SSD99 Tutorial
...Direct Methods... Topological Surgery [Taubin and Rossignac, 1996] It cuts a mesh and opens into a connected set of triangles shaped as
a tree (triangle spanning tree) The edges along which the mesh is cut form another tree (vertex
spanning tree)
The bitstream produced by the method contains the two trees Compression/decompression algorithms are rather complicated
24SSD99 Tutorial
...Direct Methods...
A Compression Method based on Shelling
[De Floriani, Magillo and Puppo, 1998]
Based on a shelling order: a sequence of all the triangles in the mesh with the property that the boundary of the set of triangles corresponding to any proper subsequence forms a simple polygon
Encoding:
four 2-bits codes per edge: SKIP, VERTEX, LEFT, RIGHT
25SSD99 Tutorial
...Direct Methods...
...A Compression Method based on Shelling...
Initialize current polygon at an arbitrary triangle of the TIN Loop on the edges of the current polygon, and for each edge
e try to add the triangle t externally adjacent to e : if t contains a new vertex, send a VERTEX code and vertex
information if t is bounded by the edge either preceding or following e on the
current polygon, then send either a LEFT or a RIGHT code if t either cannot be added or does not exist, then send a SKIP
code
26SSD99 Tutorial
...Direct Methods...
27SSD99 Tutorial
...Direct Methods...
Properties of the Shelling Method: Every vertex is encoded only once Each edge is examined at most once Compression and decompression algorithms:
fast no numerical computations conceptually simple and easy to implement
Adjacencies between triangles are reconstructed directly from the sequence at no additional cost
Cost: in theory: at most 6 bits of connectivity per vertex in practice: less than 4.5 bits of connectivity per vertex
28SSD99 Tutorial
...Direct Methods...
Experimental Results:
Exp #vert #tri #code bits compression bits /vert time(tri/s)
U1 42943 85290 182674 4.2538 1.644(51879)U2 28510 56540 123086 4.3173 1.077(52483)U3 13057 25818 57316 4.3897 0.479(53899)U4 6221 12240 27180 4.3690 0.215(56930)
29SSD99 Tutorial
Progressive Compression
Efficient encoding of the mesh produced by a simplification algorithm
A sequence of progressive LODs generated by iteratively applying a destructive operator which removes details from a mesh
An inverse constructive operator recovers details
Encoding:
coarsest mesh produced in the simplification process + sequence of construction operations
30SSD99 Tutorial
...Progressive Compression...
Each LOD can be seen as a form of lossy compression of the original mesh
There is a trade-off between loading/transmission times and loss of detail
Compression rates are usually lower than those achieved by direct techniques
31SSD99 Tutorial
...Progressive Compression...
Progressive Compression Methods
Progressive meshes [Hoppe, 1996]
destructive operator = edge collapse
Sequence of edge swaps [De Floriani, Magillo and Puppo, 1998]
destructive operator = vertex removal
Sequence of ordered vertex sequences [Snoeyink and van Kreveld, 1997]
destructive operator = removal of a set of vertices
32SSD99 Tutorial
...Progressive Compression...
Progressive Meshes [Hoppe, 1996] Edge collapse:
replace an edge e with a vertex v1 and the two triangles sharing e with two edges incident at v1
Vertex split (inverse operation): expand a vertex v1 into an edge e=v1v2 and two edges e1 and e2 among those
incident at v1 into two triangles
v1
v1 v2
e1
e2
e
33SSD99 Tutorial
...Progressive Compression...
Progressive Meshes [Hoppe, 1996]
Encoding: new vertex v2 reference to v1 code specifying the position of e1 and e2 in the set of edges
incident at v1 Properties:
suitable to support geomorphing Cost:
n(log n + log(b(b-1))) bits of connectivity, where b = maximum degree of a vertex at any step
for instance, for n=216 and b=23 ==> about 21.8*216 bits of connectivity
34SSD99 Tutorial
...Progressive Compression...
Sequence of Edge Swaps
[De Floriani, Magillo, Puppo, 1998]
Based on the iterative removal of a vertex of bounded
degree (less than a constant b) selected according to an
error-based criterion:
The vertex which causes the smallest loss of accuracy (least
relevant detail) is always selected
The polygonal hole left by removing vertex v is re-
triangulated
The inverse constructive operator inserts vertex v and
recovers the previous triangulation of
35SSD99 Tutorial
Sequence of Edge Swaps
The old triangulation T is recovered from the new one T' by first splitting the triangle t of T' containing vertex v and then applying a sequence of edge swaps
...Progressive Compression...
T
T’
36SSD99 Tutorial
...Progressive Compression...Sequence of Edge Swaps Information encoded for each removed vertex v:
a vertex w and an index indicating a triangle around w (they define the triangle t of T' containing v)
the packed sequence of edge swap which generates T from T'
T
Vertex: wTriangle index: 0Swap sequence: 2 0 2
37SSD99 Tutorial
...Progressive Compression...
Sequence of Edge Swaps
Cost:
n(log n +log b+ log((b-1)!)-1) bits of connectivity information
for instance, for n=216 and b=23 ==> about 31.4*216 bits of connectivity
Properties:
The criterion used in the re-triangulation is encoded in the sequence of swaps: more general than other progressive methods
Suitable to encode TINs based on Delaunay triangulations, data dependent triangulations, constrained triangulations, etc.
38SSD99 Tutorial
...Progressive Compression...
Snoeyink and van Kreveld's Method
It applies to TINs based on Delaunay triangulation
LOD generation process: at each step, a maximal set of independent vertices (i.e., vertices which are not connected by an edge) of bounded degree is removed
The process of removing a set of vertices terminates in a logarithmic number of steps
39SSD99 Tutorial
...Progressive Compression...
Snoeyink and van Kreveld's Method
Encoding:
the vertices removed at the same step form a sorted sequence
each sequence terminates with an end-of-phase code
Cost: at most log 2n bits to encode connectivity
Compression and decompression methods are quite involved
and require heavy numerical computations (a Delaunay
triangulation must be computed when decompressing)
Only suitable for Delaunay triangulation
40SSD99 Tutorial
Algorithms forTerrain Generalization
41SSD99 Tutorial
Why Terrain Generalization?
Terrain models at high resolution are often too large to be processed:
Models must fit into computer memory
Processing time must be reasonable
Performance may be critical:
Terrain visualization needs real time rendering
Some tasks in terrain analysis are computationally expensive (e.g., watershed, viewshed)
Not all tasks need a model at the same accuracy
42SSD99 Tutorial
...Why Terrain Generalization?...
More accurate representation more cells
More cells higher storage requirements and processing time
Objective of generalization: find an optimal trade-off between the size of a model and its accuracy
43SSD99 Tutorial
Terrain generalization
Problem Statement :
given a terrain model [either an RSG or a TIN],
find a TIN representing the same terrain and having smaller size and
a small approximation error
Major issues:
size / accuracy ratio
shape of cells in the generalized model (no slivers!)
44SSD99 Tutorial
Approximation error
Approximation of a terrain with a TIN: each triangle approximates a portion of terrain within a given accuracy
Given a sample data set, each triangle of the TIN approximates the portion of terrain spanned by points whose projections lie within the projection of the triangle
Error at a point is measured by distance from its vertical projection on the triangle
45SSD99 Tutorial
...Approximation error...
Errors at all points in the sample data set are combined to define the accuracy of approximation
Different combinations may be used for different needs:
Maximum error over all points
Average error
Root Mean Square error
Other criteria may be used: difference in volume, curvature, surface normal, etc...
46SSD99 Tutorial
Triangle quality measures
A TIN should have triangles as much compact as possible
Elongated triangles (slivers) cause numerical errors and unpleasant visual effects
Compactness of a triangle [Gueziec, 1995]:
where A is the area and l0 , l1 , l2 are edge lengths.
Compactness is 1 for an equilateral triangle and decreases while a triangle becomes elongated
lll
A22
21
20
34
47SSD99 Tutorial
Generalization goals
Two alternative optimization problems can be defined:
Min - # : build the approximation of minimum size (e.g. minimum number of vertices) which satisfies a given error bound
accuracy is a constraint
size is the goal
Min - : build an approximation having minimum error and having a given size
size is a constraint
accuracy is the goal
48SSD99 Tutorial
Theoretical results
Optimization problems Min-# and Min- are NP-hard [Agarwal and Suri, 1995]
There exist just few approximation algorithms for problem
Min- that guarantee a bound on the size of the solution with respect to optimal [Agarwal and Desikan, 1997]:
Algorithms are difficult to code and computationally expensive
Sub-optimality bounds are coarse
Empirical results are not substantially better than those obtained with heuristics
49SSD99 Tutorial
Practical methods
All practical methods are based on heuristics:
Selection of point features
[Fowler and Little, 1979; Chen ad Guevara, 1989; Scarlatos, 1990]
Iterative refinement of a TIN
[Franklin, 1973; Fowler and Little, 1979; De Floriani et al., 1984; De Floriani et al., 1985; Rippa, 1992]
Iterative simplification of a TIN
[Lee, 1989; deBerg and Dobrindt, 1995; Hoppe, 1996]
Methods based on greedy construction of a TIN
[Silva et al., 1995]
50SSD99 Tutorial
Methods based on selection of points
General approach:
Extract a subset of the sample data set formed by points that are likely to be relevant to describe the morphology of terrain
Compute a TIN having vertices at selected points.
Topographic features [Fowler and Little, 1979]:
Surface-specific points at peaks, pits, ridges,valleys and passes are extracted from an input RSG using a local method [Peucker and Douglas, 1975]
Points along lineal features (ridges and valleys) are organized into chains, which are simplified by a line-thinning method [Douglas and Peucker, 1973]
A Delaunay triangulation of the selected points is computed
51SSD99 Tutorial
...Methods based on selection of points...
VIP [Chen ad Guevara, 1989]
An importance measure is computed at all points of an RSG:
Each point has four pairs of diametrically opposed neighbors
For each pair of neighbors, distance from the central point to the line interpolating them is computed
The average of the four computed distances is used as a measure of importance.
Very Important Points (VIP) are extracted based either on an importance threshold, or on a desired number of points
Delaunay triangulation of VIP points is computed
P
F E
D
C
H
A
G
B
G CP
52SSD99 Tutorial
...Methods based on selection of points...
Constrained triangulation [Scarlatos, 1990]
Lineal features (ridges and valleys) as well as contour lines are
obtained from previous processing of an RSG model
A triangulation constrained to contain such lines as edges is
built
constrained triangulation may contain many slivers
53SSD99 Tutorial
...Methods based on selection of points...
Pros and Cons:
Simple and local computations
Topographic features are preserved
TIN accuracy must be evaluated after building the TIN
Very sensitive to noise in the input data
Not suitable to resolve the Min-# problem
Applicable only to RSG input (not applicable to sparse data samples)
54SSD99 Tutorial
Methods based on TIN refinement
General approach:
Start with a TIN having a small number of vertices and covering the whole domain of terrain
Iteratively insert more vertices until a stop condition is verified:
[Min-#] a desired accuracy is obtained
[Min-]the TIN has a desired number of vertices (or triangles)
Key issues that characterize different methods: Initial TIN Selection of vertices to insert Triangulation method
55SSD99 Tutorial
...Methods based on TIN refinement...
Initial TIN
[Fowler and Little, 1979]: built on a small set of point features
[Franklin, 1973; De Floriani et al., 1984; Rippa, 1992]: built on
a the four corners of a grid (two triangles)
[De Floriani et al., 1995]: built on the vertices of the convex hull
of the (arbitrarily shaped) domain
56SSD99 Tutorial
...Methods based on TIN refinement...
Selection of vertices:
All known methods use the same criterion:
At each iteration, input point causing the largest vertical error is
selected
Alternative criterion:
Select vertex that improves accuracy better
The alternative criterion might give a better size / accuracy ratio,
but it is computationally more expensive because insertion of
all points must be simulated in order to make selection
57SSD99 Tutorial
...Methods based on TIN refinement...
Triangulation method:
[De Floriani et al., 1994]: triangle containing the new vertex is
split into three
extremely simple and local update rule
hierarchy of nested triangles
many slivers
58SSD99 Tutorial
...Methods based on TIN refinement...
[Franklin, 1993]:
triangle containing the new vertex is split into three
edges of the split triangle are possibly swapped to improve compactness
simple and local update rule
still slivers
59SSD99 Tutorial
...Methods based on TIN refinement...
[Fowler and Little, 1979; …many others...]: a Delaunay
triangulation is updated by inserting the new vertex:
need for an on-line triangulation method [Watson, 1981; Guibas and Stolfi, 1983]
best compactness on the given set of vertices
region of influence is local on average, but might be arbitrarily extended in the worst case
more complex update rule
60SSD99 Tutorial
...Methods based on TIN refinement...
[De Floriani et al., 1985]: a Constrained Delaunay Triangulation
(CDT) is updated by inserting the new vertex:
need for an on-line CDT method [De Floriani and Puppo, 1988]
suitable to non-convex domains
lineal features can be included as TIN edges
update rules similar to those of Delaunay triangulation
some slivers may appear
61SSD99 Tutorial
...Methods based on TIN refinement...
[Rippa, 1992]: a data dependent triangulation is updated by
inserting the new vertex:
update method based on edge swaps similar to those used for Delaunay triangulation
tests to decide whether or not a swap must be performed depend on data elevation
better size / accuracy ratio
optimality with respect to selected criterion is not guaranteed
computationally expensive
some slivers may appear
62SSD99 Tutorial
Methods based on TIN simplification
General approach:
Start with the model (either an RSG or a TIN) at maximum resolution
Iteratively reduce the number of vertices/triangles through local modifications in the TIN until a stop condition is verified:
[Min-#] the TIN cannot be simplified firther without violating a desired accuracy
[Min-]the TIN has a desired number of vertices (or triangles)
Key issues that characterize different methods: Type of local modification Selection of modification at each step Error evaluation
63SSD99 Tutorial
...Methods based on TIN simplification...
Local modifications:
Vertex decimation [Lee, 1989; deBerg and Dobrindt, 1995]
Edge collapse [Hoppe, 1996]
64SSD99 Tutorial
...Methods based on TIN simplification...
Influence region of vertex decimation: before: a star of triangles surrounding the
removed vertex after: a star-shaped triangulated polygon
Key issues: selection of vertices to remove triangulation method error estimation
65SSD99 Tutorial
...Methods based on TIN simplification...
Greedy decimation [Lee, 1989; ….many others….]:
For each vertex in the initial TIN, compute the cost (error increase)
of deleting it from the TIN
At each step, remove vertex causing the least error increase
Mesh update based on Delaunay triangulation (variants based on
heuristics)
Vertices are stored in a priority queue according to their cost
Cost must be updated at each step only at vertices of the influence
polygon
66SSD99 Tutorial
...Methods based on TIN simplification...
Decimation of independent sets of vertices [deBerg and
Dobrindt, 1995; …others...]: At each iteration remove a set vertices such that all vertices
have bounded degree
are mutually independent (no two vertices share an edge)
Vertices to remove selected either random, or with a greedy
technique giving highest priority to vertices causing the least error
increase
Vertices eliminated in a single iteration have disjoint influence
regions (holes)
Each holes triangulated independently with Delaunay or data-
dependent rule
67SSD99 Tutorial
...Methods based on TIN simplification...
68SSD99 Tutorial
...Methods based on TIN simplification...
Edge collapse on endpoint: influence region: star of
triangles surrounding the
endpoint that disappears
equivalent to decimation with
special update rule
Edge collapse on midpoint: influence region: cycle of
triangles surrounding the
collapsed edge
69SSD99 Tutorial
...Methods based on TIN simplification...
Edge collapsing rules
Greedy: collapse an edge at each step:
the shortest edge
the edge causing the least error increase
an edge surrounded by almost coplanar faces
Independent set:
two edges are independent if they have disjoint influence regions
select a maximal set of independent edges and collapse them all
together
70SSD99 Tutorial
...Methods based on TIN simplification...
Decimation
smaller influence regions more regular triangles always possible for any
vertex
more complex update rules
Collapse
simple update rules
larger influence regions slivers collapse not always legal
71SSD99 Tutorial
Method based on greedy TIN construction
[Silva et al., 1995]:
Start with a polygon covering the whole domain
Iteratively reduce the current polygon(s) by one triangle having at least two vertices on the current boundary
Basic operations:
ear cutting
greedy biting
polygon splitting
edge splitting
72SSD99 Tutorial
...Method based on greedy TIN construction...
Ear cutting
Greedy biting
73SSD99 Tutorial
...Method based on greedy TIN construction...
Polygon splitting
Edge splitting
74SSD99 Tutorial
...Method based on greedy TIN construction...
Pros and Cons:
Good size / accuracy ratio
Does not need to keep the whole TIN in memory
Slivers
Not suitable to resolve the Min- problem
Complex update rules
75SSD99 Tutorial
Final remarks
Refinement and simplification methods may achieve both a good size / accuracy ratio, and compactness of triangles
Delaunay-based methods achieve the best compactness
Point selection methods can be used as pre-processing for refinement methods in order to speed-up refinement, and to preserve topographic features
Open issue: input data and/or TIN sometimes do not fit into memory
Greedy methods can help to cope with this problem and achieve good size / accuracy ratio, but they produce slivers
76SSD99 Tutorial
Multiresolution Terrain Models
A general framework
77SSD99 Tutorial
LOD Models
Layered models
description of a sequence of few meshes each of which represents an object at a different resolution
Multiresolution models
description of a virtually continuous set of meshes representing an object at increasing resolutions
78SSD99 Tutorial
Layered Models
Each mesh is obtained through a simplification algorithm
Each mesh is associated with a range of levels of detail
The range is used as a filter to select a mesh from the sequence
Each mesh is stored independently: the number of meshes must be small, otherwise the model becomes huge
Modest possibility to adapt resolution to application needs
Resolution of each mesh is uniform
79SSD99 Tutorial
Multiresolution Models
They provide a virtually continuous range of meshes
representing terrain at different resolutions
The number of different meshes that can be extracted from the
model is not fixed a priori, but it is a function of the data size,
and can be huge (e.g., combinatorial)
Resolution of a mesh can be variable, and change smoothly
over different parts of terrain
80SSD99 Tutorial
...Multiresolution Models...
Requirements for a Multiresolution Model
Support to efficient query processing (e.g., extraction of terrain
representations at suitable resolution in real time)
Size of the model not much higher than size of representation
at maximum resolution
No cracks or abrupt transitions within a mesh
Smooth transition between different representations at close
resolutions
81SSD99 Tutorial
...Multiresolution Models...
Intuitive Idea behind Multiresolution
Terrain representations at different levels of detail (LODs) can be obtained as a sequence of local modifications on an initial mesh (by simplification or refinement)
Some modifications depend on others Some modifications are mutually independent
82SSD99 Tutorial
...Multiresolution Models...
Initial mesh +
collection of local modifications arranged in a partial order
(described by a DAG)
The “Heart” of a Multiresolution Model
83SSD99 Tutorial
A General Framework for Multiresolution:
the MultiComplex
A MultiComplex (MC) is a labeled
DAG where
nodes are polygonal meshes
arcs describe the partial order
84SSD99 Tutorial
...A General Framework for Multiresolution...
Each modification must be consistent:
Let T be a mesh. A mesh Ti is a consistent modification of T iff T
contains a submesh T’i, such that Ti “covers” T’i , and Ti has
more cells than T’i
T’i is called the floor of Ti,
consistent
not consistent
T’iT
85SSD99 Tutorial
Expressive Power of a MultiComplex
A subMC of an MC M is a subgraph M’ where M’ contains the root If Ti belongs to M’, then all parents of Ti belong to M’ as well
Every subMC is an MC
=
86SSD99 Tutorial
...Expressive Power of a MultiComplex...
Any mesh made of cells in M is the boundary mesh of a subMC
A boundary mesh is obtained by applying all modifications in the subMC in a consistent order
boundary mesh
87SSD99 Tutorial
...Expressive Power of a MultiComplex...
Mesh at Maximum Resolution boundary mesh associated
with the MC itself
boundary mesh
88SSD99 Tutorial
Desirable Properties for a MultiComplex
Linear growth: the number of cells of the MC is linear in the number of cells in its
boundary mesh
89SSD99 Tutorial
...Desirable Properties for a MultiComplex...
Bounded width: the number of cells in any MC mesh is bounded from above by a
constant
Logarithmic height: the maximum path length is logarithmic in the total number of arcs of
the MC
Remark: bounded width linear growth
90SSD99 Tutorial
Spatial Queries on a Multiresolution Model
Special cases of a general extraction query specified by: an accuracy condition:
specification of the LOD at which the mesh is queried threshold function bounding the distance between the original terrain and
the mesh extracted from the MC
a focus condition: specification of the type of geometric operation defined by the query focus set defining the area of interest of the query
Example: maximum resolution inside a window
91SSD99 Tutorial
...Spatial Queries on a Multiresolution Model...
Accuracy Condition Threshold function : R3 R A cell c is called valid iff its approximation error is lower than the
minimum value of the threshold over c A triangle mesh satisfies if all its triangles are valid
Example of a threshold function: increasing with the distance from the viewpoint, measured on the x-y plane
92SSD99 Tutorial
Focus Condition Focus set F in R3
A cell c is called active iff
c F is not empty A focus set describes the region of interest of the query
Examples of focus sets: Point : point location query Line/polyline : segment/line interference query, visibility query Region : window query, region overlay, buffer Volume: view frustum Horizontal plane : contour lines
...Spatial Queries on a Multiresolution Model...
93SSD99 Tutorial
...Spatial Queries on a Multiresolution Model...
General Extraction Query (Selective Refinement)
Extract mesh T, among all meshes described by the model, such that
T has minimal size (minimal number of cells)
all active cells of T are valid
94SSD99 Tutorial
...Spatial Queries on a Multiresolution Model...
Two instances of the General Extraction Query
Resulting mesh defined locally only in the area of interest
Resulting mesh defined globally on the whole surface
95SSD99 Tutorial
Selective Refinement
Selective refinement is performed by sweeping a front through the DAG:
the corresponding subMC satisfies the required threshold inside the area of interest
no node above the cut can be omitted without violating the threshold
96SSD99 Tutorial
MT Library and API
Implementation of the MT as a Library
Independent of how the construction sequence is generated
Library written in C++, tested on both SGI and PC platforms
It implements:
algorithms for building an MT from a given construction sequence
encoding structures and traversal algorithms
threshold functions and focus sets to support different queries
It provides an Application Programming Interface to develop MT-
based applications
97SSD99 Tutorial
References
General definitions and properties: Puppo, CCCG’96 / Computational Geometry 1998; Magillo, PhD Thesis 1999
Multidimensional extension and other models in the MT framework: De Floriani, Magillo, Puppo, in “Geometric Modeling: Theory and Practice”, 1997 / DGCI’99
Construction: De Floriani, Magillo, Puppo, IEEE VIS’97 VARIANT: De Floriani, Magillo, Puppo, ACM GIS 1997 Data structures and queries: De Floriani, Magillo, Puppo, IEEE VIS’98 /
SSD 1999
Our web page:
http://www.disi.unige.it/research/Geometric_modeling/
98SSD99 Tutorial
Multiresolution Terrain Models
Survey and Discussion
99SSD99 Tutorial
Classification
Nested models
based on a nested subdivision of the domain
each cell in the subdivision is refined independently
Evolutionary models
based on the evolution of a mesh through local modifications
different meshes are obtained by combining different groups of modifications
100SSD99 Tutorial
Nested models
Root mesh at coarse resolution
General refinement rule: each region in the mesh is refined independently into a local mesh
An arc links a region to the local mesh refining it
101SSD99 Tutorial
…Nested models...
Cracks can appear in the surface if one node is refined independently of its neighbors
Cracks are due to edges that split during refinement
102SSD99 Tutorial
Nested models as MCs
A node of the tree is not necessarily a node of the MC
Nodes of the MC are obtained by node clustering
Clustering rule: if an edge e of a triangle t splits during refinement, then
the same split must occur in refining triangle t’ adjacent to t along e
the meshes refining t and t’ must be clustered
Propagation: many nodes of the tree can be clustered to form one node of the MC because of edge splits
103SSD99 Tutorial
…Nested models as MCs...
104SSD99 Tutorial
Quadtree-like models
Models based on regular nested subdivisions
Suitable for regularly distributed data
Quadtree: recursive subdivision of a square universe into quadrants
105SSD99 Tutorial
Quadtree
Surface within each quadrant approximated through a bilinear patch
Each patch interpolates data at its four vertices
A mesh formed of quadrants from different levels has cracks
106SSD99 Tutorial
... Quadtree ...
All quadrants of a given level must be clustered to form a single node
Complete levels are the only possible meshes to give surfaces without cracks
Each valid representation has uniform resolution
107SSD99 Tutorial
Restricted quadtree [Von Herzen & Barr, 1987]
Merging triangles from different levels without cracks:
Adjacent quadrants can differ by one level
Each quadrant is triangulated
Linear interpolation is used on each triangle
108SSD99 Tutorial
...Restricted quadtree...
Each quadrant can be triangulated in 16 possible patterns
Triangulation pattern depends on levels of adjacent quadrants
Mesh is always conforming: no cracks
The number of regions is higher than in the original quadtree
109SSD99 Tutorial
...Restricted quadtree...
Restricted quadtree and wavelets [Gross et al., 1996] Quadtree subdivision naturally adapt to computation of wavelet
coefficients at grid vertices LOD refers to detail relevance in wavelet space, rather than
absolute approximation error on surface Selective refinement: vertices are selected according to their
LOD, and the resulting quadtree is triangulated a posteriori Two quadtree levels are allowed between adjacent quadrants More complex lookup table is necessary to obtain all
triangulation patterns
110SSD99 Tutorial
Hierarchy of right triangles[Lindstrom et al., 1996, Evans et al., 1997, Duchaineau et al., 1997,
Pajarola, 1998]
Each triangle is recursively bisected by splitting it along its longest edge
Binary tree representation MC representation
111SSD99 Tutorial
...Hierarchy of right triangles...
MC corresponding to a hierarchy of right triangles:
cluster triangles of the same level that share a short edge
each node is formed of four triangles (except at the boundary)
two types of nodes: squares diamonds
each node has two parents and four sons (except at the boundary, root, and leaves)
112SSD99 Tutorial
...Hierarchy of right triangles...
Corresponding hierarchy of vertices: each node in the MC is identified with central vertex of fragment each vertex depends on two other vertices
selective refinement: mesh must contain all vertices needed to achieve the LOD, plus all their ancestors
113SSD99 Tutorial
…Hierarchy of right triangles...
Different models are characterized by: data structures error evaluation traversal algorithms
Trade-off between space complexity and time efficiency
114SSD99 Tutorial
…Hierarchy of right triangles...
[Lindstrom et al., 1996]
Data structure: matrix of input values Error: on-the-fly estimate of error in screen space Selective refinement: bottom-up vertex reduction
no overhead for multiresolution data structure on-the-fly error estimate is expensive; speed-up techniques
do not warrant exact error evaluation
115SSD99 Tutorial
…Hierarchy of right triangles...
[Duchaineau et al., 1997, Evans et al., 1997]
Data structure: binary tree of triangles Error: a priori evaluation Selective refinement: top-down traversal of the tree by
forcing splits where necessary
no need for numerical computation during refinement expensive data structure
116SSD99 Tutorial
…Hierarchy of right triangles...
An implicit data structure: Matrix of input values An array of errors, one for each triangle
Each triangle, and each MC node can be identified by a unique code
All topological and hierarchical relations involving vertices, triangles, and nodes can be evaluated by algebraic manipulation of codes
The array of errors is addressed directly through codes
Very efficient time performance with a moderate overhead
117SSD99 Tutorial
Codes for triangles [Hebert, 1995] Reference domain: unit square [0,1]x[0,1] Quadtree subdivision:
a quadrant is identified by its center the center of a quadrant at level m is encoded by a sequence of m
quaternary digits (2m bits)
where all i are pairs of signs: (-1,-1) (-1,1) (1,-1) (1,1)
…Hierarchy of right triangles...
m
ii
i
12
118SSD99 Tutorial
…Hierarchy of right triangles...
For each level of the quadtree there are two levels in the tree of triangles: each quadrant is subdivided in two possible ways
Triangles in a quadrant are identified by a pair of digits (l,t) where l is the type of subdivision, and t is the index of a triangle in the subdivision (total 4 bits)
119SSD99 Tutorial
…Hierarchy of right triangles...
Topological relations are evaluated by algebraic manipulation of codes. From a triangle we can obtain: vertices parent triangle sons adjacent triangles at the same level adjacent triangle at the previous level adjacent triangles at the next level
120SSD99 Tutorial
…Hierarchy of right triangles...
Codes for nodes of the MC: two kinds of nodes: squares and diamonds a node is encoded by its center a square coincides with a quadtree quadrant same code a diamond is encoded with a similar formula that identifies its
center vertex
121SSD99 Tutorial
…Hierarchy of right triangles...
Relations among triangles and nodes are evaluated by algebraic manipulation of codes. From a node we can obtain: triangles in it triangles in its floor parent nodes child nodes
The algorithm for selective refinement for MC can be implemented efficiently on a hierarchy of right triangles encoded by the implicit data structure
122SSD99 Tutorial
…Hierarchy of right triangles...
Results of selective refinement with view frustum, and error increasing with distance from viewpoint
123SSD99 Tutorial
Quaternary triangulations
Recursive subdivision of a triangle into four triangles by joining the midpoints of edges
Applicable as a refinement scheme to an arbitrary surface mesh at low resolution
Topological constraints on positions of vertices
Supports methods based on wavelets
A mesh made of triangles from different levels has cracks
124SSD99 Tutorial
...Quaternary triangulations...
Different levels of the hierarchy can be merged through a posteriori triangulation of non-conforming meshes
Eight triangulation patterns Patterns less regular than those used for restricted quadtrees Model completed with such triangulation patterns is not an MC
125SSD99 Tutorial
Adaptive hierarchical triangulations
Based on irregular triangulations Suitable for sparse data sets Error driven subdivision rule: refine a triangle by inserting
vertices that cause the largest errors Vertices can be inserted inside a triangle and/or on its edges
More adaptive than models based on fixed subdivision rules May contain elongated triangles (slivers)
126SSD99 Tutorial
...Adaptive hierarchical triangulations...
[Pavlidis and Scarlatos, 1990/92] Find the vertex causing the largest
error inside the triangle, and the vertices causing the largest error along each edge
Select only vertices whose error is beyond a given threshold
Use predefined subdivision patterns
[De Floriani and Puppo, 1992/95] Insert the vertex causing the largest
error until a given accuracy is achieved
At each insertion compute the Delaunay triangulation
127SSD99 Tutorial
Evaluation of nested models
Regular subdivisions Pros:
easy to handle compact data structures regular shape of regions support wavelets
Cons: only regular data:
topological constraints less adaptive than irregular
subdivisions
Irregular subdivisions Pros:
suitable for irregular distributed data sets
more adaptive than regular subdivisions
Cons: elongated triangles cumbersome structures selective refinement not
easy
128SSD99 Tutorial
Evolutionary models
Store the evolution of a mesh through either refinement or
simplification algorithm based on local modifications
Partial order is given by relations among components of the
mesh (vertices, faces, etc…) before and after each local
modification
Different models characterized by: construction method
information stored (geometry, connectivity, topology, interference,
attributes, error, etc…)
operations supported - efficiency of algorithms
129SSD99 Tutorial
...Evolutionary models...
Models based on vertex insertion / vertex decimation [De Floriani, 1989] [de Berg and Dobrindt, 1995] [Cignoni et al., 1995/97] [Brown, 1996/97] [Klein and Strasser, 1996] [De Floriani et al., 1996/97/98]
130SSD99 Tutorial
...Evolutionary models...
Models based on vertex split / edge collapse [Hoppe, 1996/97/98] [Xia et al., 1996/97] [Maheswari et al., 1997] [Gueziec et al., 1998] [Kobbelt et al., 1998]
131SSD99 Tutorial
Data structures
Relevant information on evolutionary models: Geometry: coordinates of vertices Connectivity: triplets of vertices forming triangles Topology: adjacency, boundary, co-boundary relations Spatial interference: relations among nodes and triangles
that have spatial interference Additional information: accuracy, material, surface normal,
etc.
Different data structures are characterized by the amount of information stored
Trade-off between spatial complexity and efficiency
132SSD99 Tutorial
...Data structures...
Sequential models
[Cignoni et al., 1996; Hoppe, 1996; Klein and Strasser, 1997; De Floriani et al., 1998]
Keep local modifications into a totally ordered list (just one valid sequence)
Dependencies are not explicitly stored
133SSD99 Tutorial
...Data structures...
…Sequential models…
extraction of a uniform LOD very efficient very compact selective refinement not possible no topology and interference maintained
134SSD99 Tutorial
...Data structures...
Explicit MC Representation for triangle meshes (MultiTriangulation, MT) [De Floriani et al., 1996/1998]
Geometry: vertex coordinates
Connectivity:
for each triangle: error + references to its three vertices
DAG structure:
for every arc (Tj,Ti): links to source and destination node, link to the set of triangles of Tj which form the floor of Ti
for every node: link to the sets of its incoming and outcoming arcs
135SSD99 Tutorial
...Data structures...
MTExplicit MT
136SSD99 Tutorial
...Data structures...
...Explicit MC representation...
Supports selective refinement efficiently Supports spatial queries efficiently
High storage cost No topology
137SSD99 Tutorial
...Data structures...
Compressed hierarchies:
Key ideas: each node of an MC is a local modification that can be encoded in
compressed form the arcs of the DAG are encoded explicitly
Different structures for models based on edge collapse called vertex hierarchies: [Xia et al., 1996/97] [Hoppe, 1997] [Gueziec et al., 1998]
One structure for models based on vertex decimation: [De Floriani et al., 1997/98]
138SSD99 Tutorial
...Data structures...
Vertex hierarchies [Hoppe, 1997; Xia et al., 1997, Gueziec et al., 1998]
Based on vertex split
Store two types of dependencies among vertices
Dependencies of type 1: a vertex depends on the vertex that has been split to create it
139SSD99 Tutorial
...Data structures... Dependencies of type 2 (defined differently in the various models):
[Hoppe, 1997]
[Xia et al., 1997, Gueziec et al., 1998]
Dependencies of type 1 and of type 2 DAG of vertex dependencies
140SSD99 Tutorial
...Data structures...
Compressed hierarchies for a MultiTriangulation based on
decimation: Implicit MT [De Floriani et al., 1997/98]
Each node corresponds to vertex insertion/decimation
Partial order of nodes is maintained
For each node:
corresponding vertex
error associated with the component
possible compressed information to encode node triangulation
141SSD99 Tutorial
...Data structures...
…Compressed hierarchies...
More compact than Explicit MC
Less general than Explicit MC Accuracy not stored for each triangle resulting mesh not
minimal (about twice the size of mesh obtained from Explicit MC)
142SSD99 Tutorial
...Data structures...
Hypertriangulation [Cignoni et al., 1995/97]
Interpretation of an MC in a higher dimensional space: cells of a new node are lifted along a “resolution axis” and welded on floor at the node boundary
143SSD99 Tutorial
...Data structures...
...Hypertriangulation...
Data structure based on topological information (global adjacency)
topology is maintained explicitly efficient support of queries requiring navigation of domain interactive mesh editing high storage cost no interference information selective refinement super-linear and possible only for some
accuracy conditions
144SSD99 Tutorial
Discussion
Taxonomy
Modeling issues: adaptivity and data distribution expressive power shape of triangles storage
Processing issues: selective refinement progressive transmission navigation geometric queries construction
145SSD99 Tutorial
...Discussion...
Adaptivity and data distribution Adaptivity: possibility to increase LOD only where necessary Data distribution: irregular distribution vs regular grid
More adaptive, more general
Less adaptive, less general
MT, HyT
PM
Adaptive hierarchical triangulations
Quaternary triangulations
Quadtree, hierarchy of right triangles
146SSD99 Tutorial
...Discussion...
Expressive power Number of different meshes that can be extracted Possibility to adapt a mesh to arbitrary LOD Ratio accuracy/size
More expressive, higher ratio
Less expressive, lower ratio
Explicit MT
PM, Implicit MT
HyT
Quaternary triangulations
Hierarchy of right triangles, quadtree,restricted quadtree,
Adaptive hierarchical triangulations
147SSD99 Tutorial
...Discussion...
Shape Regions with regular shape are desirable Slivers cause numerical errors, and unpleasant visual effects
More regular
Less regular
Quadtree, restricted quadtree, hierarchy of right triangles
Quaternary triangulation
HyT, MT
PM
Adaptive hierarchical triangulations
148SSD99 Tutorial
...Discussion...
Storage Compact data structures are desirable Increasing complexity: geometry, connectivity, interference,
topology
More expensive
Less expensive
Adaptive hierarchical triangulations
HyT
Explicit MT, vertex hierarchies
Implicit MT
Linear sequences (linear PM)
Quadtree, quaternary triangulation, hierarchy of right triangles
149SSD99 Tutorial
...Discussion...
Selective refinement High efficiency is desirable
More efficient
Less efficient
Explicit MT
Hierarchy of right triangles
PM vertex hierarchies
Implicit MT
HyT
Quaternary triangulation, restricted quadtree
Linear sequences (linear PM)
150SSD99 Tutorial
...Discussion...
Progressive transmission Compact coding and fast decompression at client are relevant
More efficient
Less efficient
Quadtree, hierarchy of right triangles
Linear PM
Implicit MT, PM vertex hierarchies
Other linear sequences
Explicit MT
Restricted quadtree, quaternary triangulation
151SSD99 Tutorial
...Discussion...
Navigation Ability to move across surface and through LOD
More efficient
Less efficient
Quadtree, hierarchy of right triangles
Restricted quadtree, quaternary
Adaptive hierarchical triangulation
HyT
Explicit MT
Implicit MT, PM vertex hierarchies
Linear sequences
152SSD99 Tutorial
...Discussion...
Geometric queries Point location, windowing, segment intersection, ray shooting,
clipping, etc… Bounded width and logarithmic height are relevant
More efficient
Less efficient
Quadtree, hierarchy of right triangles
Restricted quadtree, quaternary
Adaptive hierarchical triangulation
Explicit MT
HyT
Implicit MT, PM vertex hierarchies
Linear sequences
153SSD99 Tutorial
...Discussion...
Construction Lower time complexity of construction algorithm is desirable Easy-to-code algorithms are desirable
More complex, more difficult
Less complex, less difficult
Adaptive hierarchical triangulations
HyT
MT, PM vertex hierarchies
Linear sequences (linear PM)
Quaternary triangulation
Quadtree, hierarchy of right triangles
154SSD99 Tutorial
Multiresolution Terrain Models
Applications
155SSD99 Tutorial
Applications of Multiresolution Terrain Models
Terrain visualization in GUI for GIS, landscape assessment,
flight simulation and virtual reality
Standard viewing and editing tasks: windowing, zooming,
panning, buffering, etc.
Contour map extraction
Viewshed computation
Watershed computation
Track profiling
156SSD99 Tutorial
TINs at variable resolution
MT manager DISKMT
raw data points
extraction parameters
MT builder
MT clients
MT viewer
. . . .
MT updates
. . . .
VARIANT(Variable Resolution Interactive Analysis
of Terrain)A system for analyzing, querying and visualizing terrain models at
variable resolution based on the MT
System Architecture
157SSD99 Tutorial
...VARIANT...
VARIANT architecture consists of:
MT Manager: layer of operations built on top of the MT library
to perform update, query, and I/O operations on MT models
MT Builders: algorithms to build an MT from raw data (two
refinement and four simplification strategies)
MT Clients: application programs that make use of variable
resolution features to perform various operations:
VARIANT implements a number of MT clients, such as a
multiresolution viewer
VARIANT is extensible through custom clients that can be
designed through the MT API
158SSD99 Tutorial
...VARIANT...
Multiresolution visualization
Terrain is extracted with: accuracy decreasing linearly with distance from the viewpoint
region of interest coincident with the view frustum
159SSD99 Tutorial
...VARIANT...
...Multiresolution visualization...
Uniform resolution:
12701 triangles
Variable resolution:
3065 triangles
160SSD99 Tutorial
...VARIANT...
Contour map extraction
Focus set is made of one or more horizontal planes at desired
elevations
Threshold function is constant at the desired accuracy
Only triangles intersecting the focus set are extracted, and
contour lines are computed for each triangle
161SSD99 Tutorial
...VARIANT...
Track profiling
Extraction of terrain profile along a track (road, river, ridge, etc…)
Focus set is a track on the 2D domain
Threshold function is constant at the desired accuracy
162SSD99 Tutorial
...VARIANT...
Windowing
Focus set is a rectangular window on the 2D domain
Threshold function is constant at the desired accuracy
163SSD99 Tutorial
...VARIANT...
Buffering
Focus set is buffer region on the 2D domain
Threshold function is constant at the desired accuracy inside
buffer