# Polygonal Mesh Data Structure and Processing - PowerPoint PPT Presentation

PPT – Polygonal Mesh Data Structure and Processing PowerPoint presentation | free to download - id: 12ad15-YmY2O The Adobe Flash plugin is needed to view this content

Get the plugin now

View by Category
Title:

## Polygonal Mesh Data Structure and Processing

Description:

### A Mesh is a pair (P,K), where P is a set of point positions ... 1,000 triangles. 100 triangles. QEM Simplification. Mesh Fairing (Smoothing) References ... – PowerPoint PPT presentation

Number of Views:147
Avg rating:3.0/5.0
Slides: 68
Provided by: tai6
Category:
Tags:
Transcript and Presenter's Notes

Title: Polygonal Mesh Data Structure and Processing

1
Polygonal Mesh Data Structure and Processing
• Chiew-Lan Tai

2
What is a Mesh?
3
What is a Mesh?
• A Mesh is a pair (P,K), where P is a set of point
positions
• and K is an abstract simplicial complex which
contains all topological information.
• K is a set of subsets of
• Vertices
• Edges
• Faces

4
What is a Mesh?
• Each edge must belong to at least one face, i.e.
• Each vertex must belong to at least one edge,
i.e.
• An edge is a boundary edge if it only belongs to
one face

5
What is a Mesh?
• A mesh is a manifold if
• Every edge is adjacent to one (boundary) or two
faces
• For every vertex, its adjacent polygons form a
disk (internal vertex) or a half-disk (boundary
vertex)

Manifold
Non-manifold
• A mesh is a polyhedron if
• It is a manifold mesh and it is closed (no
boundary)
• Every vertex belongs to a cyclically ordered set
of faces (local shape is a disk)

6
Orientation of Faces
• Each face can be assigned an orientation by
defining the ordering of its vertices
• Orientation can be clockwise or
counter-clockwise.
• The orientation determines the normal direction
of face. Usually counterclockwise order is the
front side.

7
Orientation of Faces
• A mesh is well oriented (orientable) if all faces
can be oriented consistently (all CCW or all CW)
such that each edge has two opposite orientations
• Not every mesh can be well oriented. e.g. Klein
bottle, Möbius strip

non-orientable surfaces
8
Euler Formula
• The relation between the number of vertices,
edges, and faces.
• where
• V number of vertices
• E number of edges
• F number of faces

9
Euler Formula
• Tetrahedron
• V 4
• E 6
• F 4
• 4 - 6 4 2
• Cube
• V 8
• E 12
• F 6
• 8 -12 6 2
• Octahedron
• V 6
• E 12
• F 8
• 6 -12 8 2

V 8 E 12 1 13 F 6 1 7 8 - 13 7 2
V 8 E 12 F 6 8 - 12 6 2
10
Euler Formula
• More general rule
• where
• V number of vertices
• E number of edges
• F number of faces
• C number of connected components
• G number of genus (holes, handles)
• B number of boundaries

V 16 E 32 F 16 C 1 G 1 B 0 16 32
16 2 (1 - 1) - 0
11
Data Structure
12
Neighborhood Relations
13
Neighborhood Relations
• For a vertex
• All neighboring vertices
• All neighboring edges
• All neighboring faces
• Knowing some types of relation, we can discover
other (but not necessary all) topological
information
• e.g. if in addition to VV, VE and VF, we know
neighboring vertices of a face, we can discover
all neighboring edges of the face

14
Choice of Data Structure
• Criteria for choosing a particular data structure
• Size of mesh ( of vertices and faces)
• Speed and memory of computer
• Types of meshes (triangles only, arbitrary
polygons)
• Redundancy of data
• Operations to be preformed (see next slide)
• Tradeoff between updating and query
• More redundancy of data, faster query but slower
updating

15
Choice of Data Structure
• Face-based data structure
• Problem different topological structure for
• Edge-based data structure
• Winged-edge data structure
• Problem traveling the neighborhood requires one
case distinction
• Half-edge data structure
• Aka doubly connected edge list (DCEL)

16
Half-Edge Data Structure
• Each edge is divided into two half-edges
• Each half-edge has 5 references
• The face on left side (assume counter-clockwise
order)
• Previous and next half-edge in counterclockwise
order
• The twin edge
• The starting vertex
• Each face has a pointer to one of its edges
• Each vertex has a
• pointer to a half
• edge that has this vertex as the start vertex

17
Half-edge data structure example
18
Half-Edge Data Structure
19
Half-Edge Data Structure
• Here is another view of half-edge data structure.
• Next pointers provide links around each face in
counterclockwise (prev pointers can be used to go
around in clockwise)
• Example finding all vertices adjacent to vertex
v.

/ Assume closed mesh and using counterclockwise
order / HalfEdge he v.he HalfEdge curr
he output (curr.twin.start) while
(curr.twin.next ! he) curr
curr.twin.next output (curr.twin.start)
20
Progressive mesh
21
Progressive Mesh
• References
• Hoppe, Progressive mesh, Siggraph 96
• Hoppe, View-dependent Refinement of Progressive
Meshes, Siggraph 97
• New representation of triangular meshes
• Simplify meshes through sequence of edge collapse
transformations
• Record the sequence of inverse transformations
(vertex splits)

22
mesh M
V
F
Vertex 1 x1 y1 z1 Vertex 2 x2 y2 z2
Face 1 2 3 Face 3 2 4 Face 4 2 7
(appearance attributes normals, colors,
textures, ...)
23
Progressive Mesh Representation
M0 base mesh
M1
M175
Mn Original mesh
24
Simplification Edge Collapse
• Idea apply a sequence of edge collapses

ecol(vs ,vt , vs )

vt
vl
vr
vl
vr
vs

vs
25
Simplification Edge Collapse
M0
M1
M175
Mn
ecol0
ecoli
ecoln-1
M0
Mi
26
Reconstruction Vertex Split
• Invertible lossless!

attributes
vspl(vs ,vl ,vr , vs ,vt ,)

vt

vl
vr
vl
vr
vs
vs

27
Reconstruction Vertex Split
M0
M1
M175
Mn
vspl0
vspli
vspln-1
M0
Mi
28
Progressive Mesh Benefits
PM
lossless
vspl
• efficient
• continuous-resolution
• space-efficient
• progressive
• single-resolution
• Optimization process
• off-line process
• various metrics (could use simpler heuristics)

29
Application Mesh compression
12964 faces
1000 faces
30
Application Progressive Transmission
Transmit the records progressively
time
M0
vspl0
vspl1
M0
31
Application Selective refinement
M0
vspl0
vspl1
vspli-1
vspln-1
(e.g. view frustum)
32
Property Vertex Correspondence
Mc
Mf
M0
v1
v1
Mn
v2
v2
ecol
ecol
v3
v3
v4
ecol
v5
v6
v7
v8
ecol(vs ,vt , vs )
33
Application Smooth Transitions
Correspondence is a surjection (onto function)
Mf
Mc
v1
v1
v2
v2
Mfc
v3
v3
v4
V
F
V
v5
v6
can form a smooth visual transition geomorph
v7
v8
34
Mesh Simplification
35
References
• Garland and Heckbert, Surface Simplification
Using Quadric Error Metrics, Siggraph 97

36
Applications
• Create progressively coarser versions of objects
(levels of detail LOD) render less detailed
version for small, distant, unimportant parts of
scene
• Inverse decimation for progressive transmission
• Multiresolution decomposition (for compression,
editing) decompose an original mesh M0 into a
low frequency component (simplified mesh Ms) and
a high frequency component (M0 Ms)

37
Introduction
• LOD frameworks
• discrete LOD
• continuous LOD
• view-dependent (anisotropic) LOD
• Simplification algorithms can be
• Fidelity-based for generating accurate image
• Budget-based simplify until a targeted number
of polygons for time-critical rendering

38
Basic Approaches
• Bottom-up approaches (this lecture)
• Remove elements (vertices, edges, triangles,
tetrahedra) and replace with fewer elements
• Top-down approaches (wavelet, subdivision-based)
mesh
• New points are inserted to generate better meshes

39
Bottom-up approaches
• Most methods operate from a priority queue of
element
• Vertices, edges, triangles, tetrahedra are
ordered in a priority queue and process
one-by-one as they are de-queued
• The cost function, which assigns the priority,
determines the order of processing

40
Local simplification operators
• Edge collapse (full edge and half edge collapse)
Hoppe96, Xia96, Bajaj99
• Vertex-pair collapse Shroeder97,
Garland97,Popovic97
• Triangle collapse Hamann94, Gieng98
• Vertex removal Shroeder92
• etc

41
Operator Edge Collapse
Full-edge collapse vnew optimized position
Half-edge collapse vnew va or vb
42
Operator Edge Collapse
Beware triangle folding!
Lead to visual artifacts, e.g., illumination and
texture discontinuities.
Can be detected by measuring the change in the
normals of the corresponding triangles before and
after an edge collapse
43
Operator Edge Collapse
Beware topological inconsistence!
A manifold mesh may become non-manifold due to
edge collapse
44
Operator Vertex-pair Collapse
Vertex-pair collapse
va
vnew
vb
Enables closing of holes and tunnels changes
topology
45
Operator Triangle Collapse
triangle collapse
va
vc
vnew
vb
A triangle collapse is equivalent to two edge
collapses. Triangle collapse hierarchies are
shallower, but also less adaptable since this is
a less fine-grained operation.
46
Comparisons
• Collapse operators simplest to implement
well-suited for implementing geomorphing between
successive levels of detail
• Half-edge collapse advs less triangles are
modified than full-edge collapse vertices are a
subset of original mesh gt simplifies bookkeeping

47
Priority Queue Methods
• Using the cost function (priority), prioritize
all the elements in the mesh
• Collapse the element with the lowest cost
(priority)
• Readjust the priorities of all the elements in
the queue affected by the collapse

48
Error Metrics
• Usually incorporate some form of object-space
geometric error measure
• Object-space error measure may be converted to a
screen-space distance during runtime
• May also incorporate measure of attribute errors
(color, normal and texture coordinate)
• Measure incremental error or total error

49
Quadric Error Metric (QEM) (Garland and Heckbert,
Siggraph 97)
• Maybe the best method
• Fast error computation, compact storage, good
visual quality
• Measures sum of squared vertex-plane distances

50
• P1 (a b c d) representing a plane ax by cz
d 0, and v vx vy vz 1
• s1 distance from vertex v to plane P1
• squared vertex-plane distances
• s2 (pv)2 (vTp)(pTv)
• Total square distances

The quadratic form Qp is a 4x4 symmetric matrix,
represented using 10 unique floating point
numbers. Summing all the matrices gives Qv
51
• Introduces QEM to prioritize collapses
• a 4x4 matrix Q is associated with each vertex
• Error of a vertex v is vTQv
• Initially, compute matrices Q for all vertices
• Compute the collapse cost of each edge by summing
the QEM of its two vertices
• The error (cost) of collapsing the edge (va , vb
)? v is vT(QaQb)v
• Repeat
• Collapse the edge with least cost
• Update collapse costs of v and its neighborhood
• Until user requirement is achieved

52
Ellipsoids shown are level surfaces of the error
quadrics, illustrate the size and orientation
53
69,451 triangles
1,000 triangles
100 triangles
54
QEM Simplification
55
Mesh Fairing (Smoothing)
56
References
• Taubin, A signal processing approach to fair
surface design, Siggraph 95.
• Kobbelt et al., Interactive multi-resolution
modeling on arbitrary meshes, Siggraph 98
• Desbrun et al. Implicit fairing of irregular
meshes using diffusion and curvature flow,
Siggraph 99

57
Mesh Fairing
58
Fairing operators for meshes
• Umbrella Kobbelt98
• Improved umbrella Desbrun99
• Taubin lm Taubin95
• Curvature flow Desbrun99
• etc

59
Definition 1-ring Neighbors of a Vertex
p1
pn
p
p2
1-ring neighbors of p, N1(p)p1,p2,,
pn Valence of p is n
...
60
General Idea
• Predict a vertex position from its neighbor
• for a vertex vi and its neighbor vj, let the
weight be wij such that
• For vertex vi, predict
• Iterate through all vertices and update the
positions

where Is a specific normalized curvature
operator, ? is a damping factor
61
General idea
• Two ways to do smoothing
• Explicit updating find each and update
each
• Compute all , solve for all xi as a linear
system
• Let K I W, then in matrix form, ?X - K
X

62
Umbrella Operator
• Pros simple, fast work well for meshes with
small variation in edge length and face angles
• Cons
• for irregular connectivity meshes lead to
artifacts
• weights only based on the connectivity, not the
geometry (e.g., edge length, face area, angle
between edges)
• vertex drifting problem, smoothing affects
parametrization, not just geometry

63
Improved Umbrella Operator
• Scale-dependent umbrella operator
• Still has a non-zero tangential component that
causes vertex drifting
• Discussion no longer linear (linearized by
assuming the edge lengths do not change during
one smoothing round)

64
Curvature Flow Operator
• A noise removal procedure that does not depend on
parametrization
• Vertices move along the surface normal with a
speed equal to the mean curvature
• Geometry is smoothed without affecting the
sampling rate

aj
xi
xj
bj
65
Curvature Flow Operator
• Vertices can only move along their normal
• no vertex drifting in parameter space

66
Comparisons
67
Extensions and Applications
• Volume preservation
• Fairing meshes with constraints
• Stopband filters and enhancement
• Multiresolution editing of arbitrary meshes
• Non-uniform subdivision
• Mesh edge detection
• Fairing of non-manifold models