polygon mesh representation

24
1 Challenge the future Boundary Representations 2: Polygon Mesh Models Ir. Pirouz Nourian PhD candidate & Instructor, chair of Design Informatics, since 2010 MSc in Architecture 2009 BSc in Control Engineering 2005 Geo1004, Geomatics Master, Directed by Dr. ir. Sisi Zlatannova

Upload: pirouz-nourian

Post on 14-Apr-2017

517 views

Category:

Engineering


1 download

TRANSCRIPT

Page 1: Polygon Mesh Representation

1 Challenge the future

Boundary Representations 2:

Polygon Mesh Models

Ir. Pirouz Nourian

PhD candidate & Instructor, chair of Design Informatics, since 2010

MSc in Architecture 2009

BSc in Control Engineering 2005

Geo1004, Geomatics Master, Directed by Dr. ir. Sisi Zlatannova

Page 2: Polygon Mesh Representation

2 Challenge the future

• Example:

• Important note:

the geometry of faces is not stored; only rendered when needed!

What you see on the screen is not necessarily what you store!

Mesh Representation A light-weight model composed of points and a set of topological

relations among them.

Points >Vertices Lines > Edges Polygons > Faces Mesh

T1: {0,4,3} T2:{0,1,4} Q1:{1,2,5,4}

Page 3: Polygon Mesh Representation

3 Challenge the future

• The geometry of a mesh can be represented by its points (known as geometrical vertices

in Rhino), i.e. a list of 3D points in ℝ3

• The topology of a mesh can be represented based on its [topological] vertices, referring

to a ‘set’ of 3D points in ℝ3, there are multiple ways to describe how these vertices are

spatially related (connected or adjacent) to one another and also to edges and faces of the

mesh

• Same topology and different geometries:

Mesh Mesh Geometry versus Mesh Topology

T1: {0,4,3} T2:{0,1,4} Q1:{1,2,5,4}

T1

T2 Q1

T1

T2 Q1

0

3

1

4 5

2 0

3

1

4 5

2

Page 4: Polygon Mesh Representation

4 Challenge the future

• formally an ordered set of Vertices, Edges and Faces or 𝑀 = (𝑉, 𝐸, 𝐹)

• The ordered set describes a set of vertices and a set of faces describing how the vertices construct convex polygons by the

set of edges connecting them when embedded in ℝ3. (In a set there is no duplicate element. So, the vertices, edges and

faces in the above definition are unique in their sets and have no duplicates.)

• Edges and faces should not intersect or self-intersect.

• Edges correspond to straight lines, faces are generators of convex and planar polygons. A mesh represents a polyhedron if

it has planar faces without self-intersection.

• Mesh has a topological structure, in which edges are tuples of vertex indices and faces are composed of (CW/CCW

ordered) tuples of integers referring to indices of the vertices or edges

• Ensuring flatness of faces is most convenient with triangular faces. This is one of many reasons that triangular meshes are

most common and used for rendering engines.

• Faces or edges should not be degenerate; e.g. an edge that effectively corresponds to a line of length zero, or a face

giving rise to a polygon that has zero surface area. Faces (polygons) should not be self intersecting; edges should not self-

intersect either.

Proper Mesh

A mesh that does not need to be corrected!

Page 5: Polygon Mesh Representation

5 Challenge the future

Mesh Basics Some preliminary definitions: fan, star, strip

A triangle strip=:ABCDEF

ABC, CBD, CDE, and EDF

A

B

C

D

E

F

A Closed Triangle Fan or a ‘star’=:ABCDEF

A

B

C

D

E

F

ABC, ACD, ADE, and AEF

A Triangle Fan=: ABCDE

A B

C D

E

ABC, ACD, and ADE

Page 6: Polygon Mesh Representation

6 Challenge the future

Mesh Basics Some preliminary definitions: free* vertices, free* edges

If an edge has less than two faces adjacent to it then it is considered free ; if a vertex is part of such an edge it is considered as free too.

* In Rhinocommon free vertices/edges are referred to as naked.

Page 7: Polygon Mesh Representation

7 Challenge the future

Images courtesy of Dr. Ching-Kuang Shene from Michigan Technological University

• if a mesh is supposed to be a 2D manifold then it should meet these criteria:

1. each edge is incident to only one or two faces; and

2. the faces incident to a vertex form a closed or an open fan.

Non manifold mesh examples: (note why!)

Proper Mesh A mesh that does not need to be corrected!?

• if a mesh is supposed to be orientable then, it should be possible to find

‘compatible’ orientations for any two adjacent faces; in which, for each pair of

adjacent faces, the common edge of the two faces has opposite orders.

• Example: Möbius band is a 2D manifold mesh that is not orientable.

Page 8: Polygon Mesh Representation

8 Challenge the future

Mesh Basics Some preliminary definitions: boundary denoted as 𝜹

• The boundary is the set of edges incident to only one face of a manifold. Therefore: we can conceptualize the boundary as the union of all faces of a manifold. We can conclude that:

• If every vertex has a closed fan (or there is no edge of valence less than 2), the given manifold has no boundary. Example: a box!

non-manifold boundary manifold boundary no boundary

Page 9: Polygon Mesh Representation

9 Challenge the future

Image Source: http://prateekvjoshi.com/2014/11/16/homomorphism-vs homeomorphism/

Mesh Topology: Homeomorphism clay models that are all topologically equal!?

Images courtesy of Dr. Ching-Kuang Shene from Michigan Technological University

Two 2-manifold meshes A and B are homeomorphic if their surfaces can be transformed to one another by topological transformations (bending, twisting, stretching, scaling, etc.) without cutting and gluing.

Page 10: Polygon Mesh Representation

10 Challenge the future

Mesh Topology: Homeomorphism Euler-Poincare Characteristic: key to homeomorphism

Images courtesy of Dr. Ching-Kuang Shene from Michigan Technological University

𝜒 𝑀 = 𝑉 − 𝐸 + 𝐹 = 2 1 − 𝑔 − 𝛿

• 𝛿 is the number of boundaries

• 𝑔 is the number of “genera” (pl. of genus) or holes

• Irrespective of tessellation!

𝜒 𝑀 = 𝑉 − 𝐸 + 𝐹 = 2 1 − 2 − 0 = −2

Page 11: Polygon Mesh Representation

11 Challenge the future

Mesh Topology: Homeomorphism Euler-Poincare Characteristic: key to homeomorphism

• N-Manifold/Non-Manifold: Each point of an n-dimensional manifold has a

neighborhood that is homeomorphic to the Euclidean space of n-dimension

• Riddle: The above definition implies that for mapping some local features

2D maps are fine. What about the whole globe? That is not

homoeomorphic to a rectangular surface! How do we do it then?

Page 12: Polygon Mesh Representation

12 Challenge the future

Quiz: Check Euler-Poincare Characteristic on two spherical meshes

• Question: we know that the Euler-Poincare Characteristic is independent of

tessellation; check this fact on the two spheres below; explain the discrepancy.

Hints: http://4.rhino3d.com/5/rhinocommon/ look at mesh [class] members

𝜒 𝑀 = 2 𝜒 𝑀 = 66!?

Page 13: Polygon Mesh Representation

13 Challenge the future

Mesh Geometry

• Polygon vs Face

• Triangulate

• Quadrangulate

Page 14: Polygon Mesh Representation

14 Challenge the future

Mesh Geometry

• Boolean operation on meshes:

1. 𝐴 ∪ 𝐵: Boolean Union

2. 𝐴 − 𝐵: Boolean Difference

3. 𝐴 ∩ 𝐵: Boolean Intersection

• why do they fail sometimes?

Page 15: Polygon Mesh Representation

15 Challenge the future

Mesh Topological Structure

• Mesh Topological Data Models:

Face-Vertex: e.g. 𝐹0 = {𝑉0, 𝑉5, 𝑉4} & 𝑉0 ∈ 𝐹0, 𝐹1, 𝐹12, 𝐹15, 𝐹7

Images courtesy of David Dorfman, from Wikipedia

Face-Vertex (as implemented in Rhinoceros)

Page 16: Polygon Mesh Representation

16 Challenge the future

Vertex-Vertex: e.g. 𝑉0~{𝑉1, 𝑉4, 𝑉3}

Face-Vertex: e.g. 𝐹0 = 𝑉0, 𝑉5, 𝑉4 , 𝑉0 ∈ 𝐹0, 𝐹1, 𝐹12, 𝐹15, 𝐹7

Winged-Edge: e.g. 𝐹0 = 𝐸4, 𝐸8, 𝐸9 , 𝐸0 = 𝑉0, 𝑉1 , 𝐸0~ 𝐹1, 𝐹12 , 𝐸0~ 𝐸9, 𝐸23, 𝐸10, 𝐸20

Half-Edge: each half edge has a twin edge in opposite direction, a previous and a next

Mesh Topological Structures

Image courtesy of David Dorfman, from Wikipedia

What is explicitly stored as topology of a mesh: E.g.

Face-Vertex (as implemented in Rhinoceros)

http://doc.cgal.org/latest/HalfedgeDS/index.html

Page 17: Polygon Mesh Representation

17 Challenge the future

Mesh Topological Structure

• Mesh Topological Data Models:

Face-Vertex Example:

http://4.rhino3d.com/5/rhinocommon/html/AllMembers_T_Rhino_Geometry_Collections_MeshTopologyVertexList.htm

Face-Vertex (as implemented in Rhinoceros)

Name Description

ConnectedFaces Gets all faces that are connected to a given vertex.

ConnectedTopologyVertices(Int32) Gets all topological vertices that are connected to a given vertex.

ConnectedTopologyVertices(Int32, Boolean) Gets all topological vertices that are connected to a given vertex.

The MeshTopologyVertexList type exposes the following members.

Half-Edge: Half-Edge Mesh Data Structure, example implementation by Daniel Piker: http://www.grasshopper3d.com/group/plankton

Page 18: Polygon Mesh Representation

18 Challenge the future

Repairing/Reconstructing Geometry

• Example: Coons’ Patch

• Code it and get bonus points!

Image courtesy of CVG Lab

Page 19: Polygon Mesh Representation

19 Challenge the future

Mesh Smoothing

For k As Integer=0 To L - 1 Dim SmoothV As New List(Of Point3d) For i As Integer=0 To M.Vertices.Count - 1 Dim Ngh = Neighbors(M, i) Dim NVertex As New Point3d(0, 0, 0) For Each neighbor As point3d In Ngh NVertex = NVertex + neighbor Next NVertex = (1 / Ngh.Count) * NVertex SmoothV.Add(NVertex) Next M.Vertices.Clear M.Vertices.AddVertices(SmoothV) A = M Next

Page 20: Polygon Mesh Representation

20 Challenge the future

Normal Vectors of a Mesh

• Topological Vertices versus Geometrical Points

• Joining mesh objects: What is a mesh box?

• Welding Meshes: how does it work?

• Face Normal versus Vertex Normal

Where do they come from and what do they represent?

Page 21: Polygon Mesh Representation

21 Challenge the future

How to Compute Mesh Normals?

00,

00 ),(vvuuv

p

u

pvun

1

( ) ( )

0

( )( )N

x i next i i next i

i

N y y z z

1

( ) ( )

0

( )( )N

z i next i i next i

i

N x x y y

1

( ) ( )

0

( )( )N

y i next i i next i

i

N z z x x

Martin Newell at Utah (remember the teapot?)

Why?

Page 22: Polygon Mesh Representation

22 Challenge the future

(2D Curvature Analysis: Mesh)

• Discretization

Mesh

• Measurement

At vertices

• Attribution

To vertices

Curvature Estimation on Meshes?

Page 23: Polygon Mesh Representation

23 Challenge the future

Curvature Estimation on Meshes

• What was the definition of curvature?

• Change of tangents or change of normals?

• How to measure change of normals?

• ProVec = vec - (vec * M.Normals(i)) * M.Normals(i)

• Projected_Vector=Vector-(Vector.Normal).Normal Why?

• Maximum & Minimum change

• Estimation of Gaussian & Mean curvature on mesh vertices

Page 24: Polygon Mesh Representation

24 Challenge the future

Questions? [email protected]