Mesh-Based Methods for Multiresolution Representations
description
Transcript of Mesh-Based Methods for Multiresolution Representations
Visualization 2000 Tutorial
Mesh-Based Methods for Multiresolution Representations
Instructor: Ken Joy
Center for Image Processing and Integrated Computing
Computer Science Department
University of California, Davis
Tutorial Vis2000 Mesh-Based Methods Slide 2
Multiresolution Methods
Tutorial Vis2000 Mesh-Based Methods Slide 3
Multiresolution Methods
(Crater Lake, USA) (Courtesy: M.Bertram, UC Davis)
Tutorial Vis2000 Mesh-Based Methods Slide 4
Multiresolution Methods
(Courtesy: M.Bertram, UC Davis)(Crater Lake, USA)
Tutorial Vis2000 Mesh-Based Methods Slide 5
Multiresolution Methods
(Courtesy: M.Bertram, UC Davis)(Crater Lake, USA)
Tutorial Vis2000 Mesh-Based Methods Slide 6
(Courtesy: M.Bertram, UC Davis)
Multiresolution Methods
(Crater Lake, USA)
Tutorial Vis2000 Mesh-Based Methods Slide 7
Objective
• We wish to create a multiresolution view of a data set, and
• We want to do this by dealing only with the mesh and the data values directly.– No wavelets!– No splines!– Just the mesh!
Tutorial Vis2000 Mesh-Based Methods Slide 8
• Bottom-up Methods– Start with the finest resolution.– Iteratively remove elements to generate lower-
resolution versions of the data
• Top-down Methods– Start with a simplified mesh that coarsely
approximates the given data set.– Add elements to this mesh, generating better
approximations at each step.
The Basic Methods
Tutorial Vis2000 Mesh-Based Methods Slide 9
Classification of bottom-up methods
• Select an element of the mesh– A vertex– An edge– A triangle– A tetrahedron
• Remove the element and all mesh edges that connect to the element.
• Replace the resulting hole in the mesh with fewer triangular or tetrahedral elements.
Tutorial Vis2000 Mesh-Based Methods Slide 10
Classification of bottom-up methods
Tutorial Vis2000 Mesh-Based Methods Slide 11
Bottom-up methods
Remove elements, creating a hole in the mesh.
Tutorial Vis2000 Mesh-Based Methods Slide 12
Classification of bottom-up methods
Re-triangulate the hole using fewer elements
Tutorial Vis2000 Mesh-Based Methods Slide 13
Bottom-up Methods
• We would like to fill the hole “optimally”
– The error between the two triangulations should be minimized. (Examples: height fields)
• Hausdorff error is best, but most errors are approximated (L1,L2, L∞)
– The number of triangles should be minimized.• “reduced” is OK
Tutorial Vis2000 Mesh-Based Methods Slide 14
Bottom-up Methods
• Most methods operate from a priority queue of elements.– Vertices, edges, or triangles are ordered in a
priority queue and processed one-by-one as they come out of the queue.
– The “cost function,” which assigns the priority, determines the ordering.
Tutorial Vis2000 Mesh-Based Methods Slide 15
Bottom-up Methods
• Vertex Removal Methods
• Edge Removal Methods
• Triangle Removal Methods
• Tetrahedra Removal Methods
Tutorial Vis2000 Mesh-Based Methods Slide 16
Vertex removal methods
Select an element to be eliminated.
Tutorial Vis2000 Mesh-Based Methods Slide 17
Vertex removal methods
Select all triangles sharing this vertex.
Tutorial Vis2000 Mesh-Based Methods Slide 18
Vertex removal methods
Remove the selected triangles, creating the hole.
Tutorial Vis2000 Mesh-Based Methods Slide 19
Vertex removal methods
Fill the hole with triangles.
Tutorial Vis2000 Mesh-Based Methods Slide 20
Vertex removal methods
• Most frequently used method of triangulations:– Use a constrained Delaunay triangulation to fill
the hole (Schroeder, et al.).– Works best on height fields– Must alter the “Delaunay” criterion slightly to
work with data sets that are not height fields
Tutorial Vis2000 Mesh-Based Methods Slide 21
Prioritizing Vertices for Removal
• Using a point-to-plane distance test.– Fit a plane through the point neighboring each
vertex. – Measure the distance of each vertex from its
respective best-fit plane.– Higher priority to those points that have
associated the smaller distances.
Tutorial Vis2000 Mesh-Based Methods Slide 22
Edge removal methods
Select an edge to be eliminated.
Tutorial Vis2000 Mesh-Based Methods Slide 23
Edge removal methods
Select all triangles adjacent to this edge.
Tutorial Vis2000 Mesh-Based Methods Slide 24
Edge removal methods
Remove these triangles, creating a hole.
Tutorial Vis2000 Mesh-Based Methods Slide 25
Edge removal methods
Fill the hole with triangles.
Tutorial Vis2000 Mesh-Based Methods Slide 26
Triangle removal methods
Select a triangle for removal
Tutorial Vis2000 Mesh-Based Methods Slide 27
Triangle removal methods
Select all triangles that are adjacent to the selected one.
Tutorial Vis2000 Mesh-Based Methods Slide 28
Triangle removal methods
Remove the selected triangles
Tutorial Vis2000 Mesh-Based Methods Slide 29
Triangle removal methods
Re-triangulate the region
Tutorial Vis2000 Mesh-Based Methods Slide 30
Bottom-up methods
• Mathematical conditions must be established that select the element to be removed.
• Methods must be established that “optimally” fill the hole, minimizing the “error” between the resulting data sets.
Tutorial Vis2000 Mesh-Based Methods Slide 31
Vertex removal methods
Tutorial Vis2000 Mesh-Based Methods Slide 32
Vertex removal methods
Use a constrained Delaunay triangulation to fill the hole. (Schroeder, et al., 1992).
Tutorial Vis2000 Mesh-Based Methods Slide 33
Edge collapse methods
Tutorial Vis2000 Mesh-Based Methods Slide 34
Edge collapse methods
Tutorial Vis2000 Mesh-Based Methods Slide 35
Edge collapse methods
Tutorial Vis2000 Mesh-Based Methods Slide 36
Edge collapse methods
Tutorial Vis2000 Mesh-Based Methods Slide 37
Edge collapse methods
Tutorial Vis2000 Mesh-Based Methods Slide 38
Edge collapse methods
Tutorial Vis2000 Mesh-Based Methods Slide 39
Edge collapse methods
Tutorial Vis2000 Mesh-Based Methods Slide 40
Edge collapse methods
Tutorial Vis2000 Mesh-Based Methods Slide 41
Edge collapse methods
Tutorial Vis2000 Mesh-Based Methods Slide 42
Edge collapse methods
Tutorial Vis2000 Mesh-Based Methods Slide 43
Edge collapse methods
Tutorial Vis2000 Mesh-Based Methods Slide 44
Triangle collapse methods
Tutorial Vis2000 Mesh-Based Methods Slide 45
Triangle collapse methods
Tutorial Vis2000 Mesh-Based Methods Slide 46
Triangle collapse methods
Tutorial Vis2000 Mesh-Based Methods Slide 47
Triangle collapse methods
Tutorial Vis2000 Mesh-Based Methods Slide 48
Triangle collapse methods
Tutorial Vis2000 Mesh-Based Methods Slide 49
Prioritizing Elements
Priority of an element.
Prioritizes for the characteristic you want to select
Prioritizes for topology characteristics you wish to select
Prioritizes inversely for artifacts that your algorithm produces that you would like to avoid.
P(E) = F(E) + T(E) + A(E))E(A)E(T)E(F)E(C
Tutorial Vis2000 Mesh-Based Methods Slide 50
Priority-Queue Methods
• Using the priority (cost) function, prioritize all elements in the mesh.
• Collapse the element with the lowest priority.
• Re-adjust the priorities of the elements of the queue affected by the collapse.
Tutorial Vis2000 Mesh-Based Methods Slide 51
Progressive Meshes
• Hoppe, SIGGRAPH 97
• Uses edge collapse– Benefit: Uses only the points of the original
mesh. Adds no points to the mesh.
• Prioritizes edge collapse operations by using strategies from “mesh optimizations”
Tutorial Vis2000 Mesh-Based Methods Slide 52
Progressive Meshes
)V(E)V(E)V(Emin)k(C scalarspringdistV
Priority of an element.
Distance of V from the original mesh.
Energy if a spring is placed on each edge.
Scalar attribute deviation
Tutorial Vis2000 Mesh-Based Methods Slide 53
QEM Simplification
• Garland and Heckbert, SIGGRAPH 97
• An edge-collapse method.
• Introduces the Quadric Error Metric to prioritize collapses– A 4x4 matrix Q is associated with each vertex.
Tutorial Vis2000 Mesh-Based Methods Slide 54
QEM Simplification• Error of a vertex v is vTQv
• Compute matrices Q for all vertices
• Compute the collapse cost an edge by summing the quadric error metrics of its vertices, i.e., of the edge joining v1 and v2 by Q1+Q2.
• The priority queue is constructed on the “collapse cost”
Tutorial Vis2000 Mesh-Based Methods Slide 55
QEM Simplification
(Courtesy: M.Garland, UIUC)
Tutorial Vis2000 Mesh-Based Methods Slide 56
QEM Simplification
Full Resolution 60,000 triangles 1000 triangles
(Courtesy: M.Garland, UIUC)
Tutorial Vis2000 Mesh-Based Methods Slide 57
Triangle-Collapse Algorithms
• Gieng, et al., Visualization ’98 Proceedings
• Collapses individual triangles to a point.
• Collapse point is chosen by a best-fit quadric to the surface about a triangle.
Tutorial Vis2000 Mesh-Based Methods Slide 58
Prioritizing for Triangle Collapse
Priority of an element.
Prioritizes high for low absolute curvature
Prioritizes high for equilateral triangles, low for skinny triangles.
Prioritizes high for collapses that do not generate high-valence vertices
)T(V)T(S)T(FA)T(C T
Prioritizes high for low area
Tutorial Vis2000 Mesh-Based Methods Slide 59
Choosing the collapse point
Tutorial Vis2000 Mesh-Based Methods Slide 60
Triangle collapse
(Courtesy: G. Schussman, UC Davis)
Tutorial Vis2000 Mesh-Based Methods Slide 61
Collapsing the bunny
(Courtesy: G. Schussman, UC Davis)
Tutorial Vis2000 Mesh-Based Methods Slide 62
Collapsing the bunny
(Courtesy: G. Schussman, UC Davis)
Tutorial Vis2000 Mesh-Based Methods Slide 63
Collapsing the bunny
(Courtesy: G. Schussman, UC Davis)
Tutorial Vis2000 Mesh-Based Methods Slide 64
Collapsing the bunny
(Courtesy: G. Schussman, UC Davis)
Tutorial Vis2000 Mesh-Based Methods Slide 65
Collapsing the bunny
(Courtesy: G. Schussman, UC Davis)
Tutorial Vis2000 Mesh-Based Methods Slide 66
Collapsing the bunny
(Courtesy: G. Schussman, UC Davis)
Tutorial Vis2000 Mesh-Based Methods Slide 67
Collapsing the bunny
(Courtesy: G. Schussman, UC Davis)
Tutorial Vis2000 Mesh-Based Methods Slide 68
The error between meshes
Tutorial Vis2000 Mesh-Based Methods Slide 69
Crater Lake data set
(Courtesy: I. Trotts, UC Davis)
Tutorial Vis2000 Mesh-Based Methods Slide 70
Crater Lake data set
(Courtesy: I. Trotts, UC Davis)
Tutorial Vis2000 Mesh-Based Methods Slide 71
Tetrahedral Meshes
• Topological problems of tetrahedron collapse algorithms are overwhelming.
• Resorting to edge collapse algorithms– Even then, the topological problems are
difficult to overcome.
Tutorial Vis2000 Mesh-Based Methods Slide 72
Tetrahedral collapse algorithms
Consider a triangle mesh on a regular grid.
Collapse this edge
Tutorial Vis2000 Mesh-Based Methods Slide 73
Tetrahedral collapse algorithms
Tutorial Vis2000 Mesh-Based Methods Slide 74
Tetrahedral collapse algorithms
Tutorial Vis2000 Mesh-Based Methods Slide 75
Tetrahedral collapse algorithms
Tutorial Vis2000 Mesh-Based Methods Slide 76
Tetrahedral collapse algorithms
Tutorial Vis2000 Mesh-Based Methods Slide 77
Tetrahedral collapse algorithms
Tutorial Vis2000 Mesh-Based Methods Slide 78
Tetrahedral collapse algorithms
Two triangles will become degenerate.
Tutorial Vis2000 Mesh-Based Methods Slide 79
Tetrahedral collapse algorithms
(Courtesy: I. Trotts, UC Davis)
Tutorial Vis2000 Mesh-Based Methods Slide 80
Tetrahedral collapse algorithms
(Courtesy: I. Trotts, UC Davis)
Tutorial Vis2000 Mesh-Based Methods Slide 81
Tetrahedral collapse algorithms
(Courtesy: I. Trotts, UC Davis)
Tutorial Vis2000 Mesh-Based Methods Slide 82
Tetrahedral collapse algorithms
(Courtesy: I. Trotts, UC Davis)
Tutorial Vis2000 Mesh-Based Methods Slide 83
Tetrahedral collapse algorithms
(Courtesy: I. Trotts, UC Davis)
Tutorial Vis2000 Mesh-Based Methods Slide 84
Summary of bottom-up methods
• All methods start with the original mesh.
• All methods remove elements from the mesh, replacing them by fewer elements.
• Most work with a “priority queue”
Tutorial Vis2000 Mesh-Based Methods Slide 85
Top-down methods
• These methods start with a very coarse approximation to the original mesh.
• New points are inserted into the coarse mesh depending on an error estimate.
Tutorial Vis2000 Mesh-Based Methods Slide 86
Delaunay Methods
• Cignoni, deFloriani, Scopigno papers• Start with a coarse mesh.• Insert the point of the original data set that
has the maximum error.• Re-triangulate to insure a Delaunay
triangulation.• “Delaunay” definition may have to be
changed for non-height fields.
Tutorial Vis2000 Mesh-Based Methods Slide 87
Voronoi Methods
• Schussman, Bertram, et al., 2000
• For each point, use a Voronoi diagram to establish the “grid.”
• Use Sibson’s interpolant on Voronoi Cells for approximation.
Tutorial Vis2000 Mesh-Based Methods Slide 88
“Dying Sun”
100 tiles 500 tiles 2000 tiles
Tutorial Vis2000 Mesh-Based Methods Slide 89
Vector-field Simplification
• Heckel, et al., Visualization ’99
• Use clustering to obtain groups of elements
• Represent each cluster by a single element– Point at the center of the cluster, and a vector
• Use a scattered data interpolant to obtain approximations of other points in the field
Tutorial Vis2000 Mesh-Based Methods Slide 90
Splitting Clusters of Vectors
Tutorial Vis2000 Mesh-Based Methods Slide 91
Visualization Space Error
• Streamline error
– Compute streamline pairs, using original field points as seeds
– Define the error as the deviation of streamline pairs:
Tutorial Vis2000 Mesh-Based Methods Slide 92
Splitting Clusters of Vectors
40 Clusters 300 Clusters(Courtesy: B. Heckel, UC Davis)
Tutorial Vis2000 Mesh-Based Methods Slide 93
Splitting Clusters of Vectors
Tutorial Vis2000 Mesh-Based Methods Slide 94
Splitting Clusters of Vectors
200 Clusters 2000 Clusters(Courtesy: B. Heckel, UC Davis)
Tutorial Vis2000 Mesh-Based Methods Slide 95
Summary of top-down methods
• All methods refine a coarse approximation, creating successively finer mesh approximations.
• This area is not as well developed as the bottom-up methods.
Tutorial Vis2000 Mesh-Based Methods Slide 96
Challenges
• Complex Surfaces (Isosurface data)
Not just a few (thousands of) polygons, but billions.
Most of the mesh-based algorithms do not scale well in our initial tests!
(Courtesy: M.Bertram, UC Davis)
Tutorial Vis2000 Mesh-Based Methods Slide 97
Challenges
100% 15% - smoothed (Courtesy: M.Bertram, UC Davis)
Tutorial Vis2000 Mesh-Based Methods Slide 98
Challenges
(Courtesy: M.Duchaineau, LLNL)
Tutorial Vis2000 Mesh-Based Methods Slide 99
1,187,000 points 5% - 59,000 points
Challenges
Tutorial Vis2000 Mesh-Based Methods Slide 100
Thank You!
http://graphics.cs.ucdavis.edu
Visualization 2000 Tutorial
Mesh-Based Methods for Multiresolution Representations
Instructor: Ken Joy
Center for Image Processing and Integrated Computing
Computer Science Department
University of California, Davis