Presentation is loading. Please wait.

Presentation is loading. Please wait.

Polygonal Mesh – Data Structure and Smoothing

Similar presentations


Presentation on theme: "Polygonal Mesh – Data Structure and Smoothing"— Presentation transcript:

1 Polygonal Mesh – Data Structure and Smoothing
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 A mesh is a polyhedron 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 non-orientable surfaces
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 Cube Octahedron V = 4 E = 6 F = 4
= 2 Cube V = 8 E = 12 F = 6 = 2 Octahedron V = 6 E = 12 F = 8 = 2 V = 8 E = = 13 F = = 7 = 2 V = 8 E = 12 F = 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 boundary loops V = 16 E = 32 F = 16 C = 1 G = 1 B = 0 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

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 Mesh Fairing (Smoothing)

21 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

22 Mesh Fairing

23 Fairing operators for meshes
Umbrella [Kobbelt98] Improved umbrella [Desbrun99] Taubin l|m [Taubin95] Curvature flow [Desbrun99] etc …

24 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 ...

25 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

26 General idea X = - K X Explicit updating – find each and update each
In matrix form: X = - K X where K = I - W Explicit updating – find each and update each

27 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

28 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)

29 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

30 Curvature Flow Operator
Vertices can only move along their normal no vertex drifting in parameter space

31 Comparisons

32 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


Download ppt "Polygonal Mesh – Data Structure and Smoothing"

Similar presentations


Ads by Google