Polygonal Mesh - PowerPoint PPT Presentation

About This Presentation
Title:

Polygonal Mesh

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:185
Avg rating:3.0/5.0
Slides: 68
Provided by: tai6
Category:

less

Transcript and Presenter's Notes

Title: Polygonal Mesh


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
    for its two adjacent faces
  • 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
    triangles and quadrangles
  • 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
half-edge origin twin incident face next prev
e3,1 v2 e3,2 f1 e1,1 e3,1
e3,2 v3 e3,1 f2 e5,1 e4,1
e4,1 v4 e4,2 f2 e3,2 e5,1
e4,2 v3 e4,1 f3 e7,1 e6,1
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 verticesadjacent to vertex
    v.

/ Assume closed mesh and using counterclockwise
order / HalfEdge he v.heHalfEdge curr
heoutput (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
Traditional Mesh Representation
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
Receiver displays
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)
  • Start with the original fine mesh
  • Remove elements (vertices, edges, triangles,
    tetrahedra) and replace with fewer elements
  • Top-down approaches (wavelet, subdivision-based)
  • Start with very coarse approximation of original
    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
Quadric Error Metric (QEM)
  • 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
Quadric Error Metric (QEM)
  • 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
Quadric Error Metric (QEM)
Ellipsoids shown are level surfaces of the error
quadrics, illustrate the size and orientation
of error quadrics
53
Quadric Error Metric (QEM)
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
Write a Comment
User Comments (0)
About PowerShow.com