Post on 17-Dec-2015
transcript
3D Compression, SM’02 1Jarek Rossignac, GVU Center, Georgia Tech 1: T-meshes
Triangle meshes
Jarek RossignacGVU Center and College of Computing
Georgia Tech, Atlanta
http://www.gvu.gatech.edu/~jarek
3D Compression, SM’02 2Jarek Rossignac, GVU Center, Georgia Tech 1: T-meshes
Popular domain
• Surfaces decomposed into simple manifolds (with boundary)
• Represent each manifold surface as a triangle mesh– T-meshes are supported by optimized rendering systems
– Easily derived from polygons and parametric surfaces
Pseudo-manifold Faces (flat or curved)
3D Compression, SM’02 3Jarek Rossignac, GVU Center, Georgia Tech 1: T-meshes
Focus on explicit representations
• Samples: Location and attributes (color, mass)• Connectivity: Triangle/vertex incidence• Fit: Rule for bending triangles (subdivision surfaces, NURBS)
Samples (vertices):
x y z cx y z cvertex 1
vertex 2
vertex 3 x y z c
Triangle/vertex incidence:
3 2 4
6 5 8
Triangle 4 7 5 6Triangle 5
1 2 3Triangle 1
4 5 2
Triangle 2
Triangle 3
Triangle 6 8 5 1
t3
v4
v2v5
V(3B+k) bits
V(6log2V) bitsT = 2V
3D Compression, SM’02 4Jarek Rossignac, GVU Center, Georgia Tech 1: T-meshes
Samples, connectivity, & attributes
• Samples (“vertices”)– Location (x,y,z)
• Connectivity (“triangles”)– Define how surface interpolates samples
– Specifies surface as a set of triangles
– Associates each triangle with 3 samples (called corners)
– Define how to interpolate corner attributes over triangle
• Attributes (parameters for color and texture calculations)– One per corner of each triangle
• Could be the same for all 3 corners (flat triangle)
• Could be the same for two adjacent corners (smooth edge)
• Could be the same for all coincident corners (smooth surface)
– Linear interpolation of shape and attributes over triangle
3D Compression, SM’02 5Jarek Rossignac, GVU Center, Georgia Tech 1: T-meshes
• Vertex: – Location of a sample
• Triangles: – Decompose approximating surface
• Edge: – Bounds one or more triangles– Joins two vertices
• Corner: – Abstract association of a triangle with a vertex– May have its own attributes (not shared by corners with same vertex)
• Used to capture surface discontinuities
• Border (half-edge, dart):– Association of a triangles with a bounding edge.– Defines an orientation of the border
• A triangle has 3 borders and 3 corners
Terminology
triangle
border
vertexcorner
edge
3D Compression, SM’02 6Jarek Rossignac, GVU Center, Georgia Tech 1: T-meshes
• For each triangle:– For each one of its 3 corners, store:
• Location
• Attributes (may be the same for neighboring corners)
• Each vertex location is repeated (6 times on average)– geometry = 36 B/T (float coordinates: 9x4 B/T)
– Plus 3 attribute-sets per triangle (6 per vertex)
Representation as independent triangles
x y z x y z x y zx y z x y z x y zx y z x y z x y z
vertex 1 vertex 2 vertex 3
Triangle 2
Triangle 1
Triangle 3
Very verbose! Not good for traversal.
3D Compression, SM’02 7Jarek Rossignac, GVU Center, Georgia Tech 1: T-meshes
Connectivity = Incidence + adjacency
• Triangle/vertex incidence (“corner”)– Associates each triangle with 3 vertices
• Defines Corners
• Triangle/triangle adjacency– Associates triangle with neighboring triangles
• Neighboring triangles share a common edge
– Is completely defined by incidence!
– Convenient to accelerate traversal of triangulated surface• Walk from one triangle to an adjacent one (visit them all once)
• Used to build triangle strips
• Used to estimate surface normals at vertices
• Used to compress triangulated surfaces
• Triangle/edge incidence (border)– Associates triangles with their bounding edges
3D Compression, SM’02 8Jarek Rossignac, GVU Center, Georgia Tech 1: T-meshes
Triangle orientation
• Orient the plane supporting a triangle– Pick one of 2 possible orientations for the normal
• List corners in counter clockwise order– Cyclic order (equivalence under cyclic permutation)
• Orientation compatibility for adjacent triangles– Common corners follow each other in reverse order
• Can try to propagate consistent orientation– Pick orientation for first triangle
– Propagate to neighbors (edge-connected), needs not use geometry
– What if more than two triangles share same edge?
• Orientable set of triangles– Can all triangles be oriented to be consistent with their neighbors?
• Only if the mesh is orientable
3D Compression, SM’02 9Jarek Rossignac, GVU Center, Georgia Tech 1: T-meshes
• Integer Ids for vertices (0, 1, 2… V-1) & triangles (0, 1, 2…T-1)
• Triangle orientation: cyclic order in which corners are listed
• Other connectivity info may be derived– Borders: defined by 3 pairs of corners for each triangle
– Edges: Set of borders with same two vertices
– Adjacency: Triangles incident upon the same edge
• Incidence graph representation:– List of corners (id for vertex & attribute)
– Corners of each triangle are consecutive
• Samples defined separately:– List of vertex locations (x,y,z)
– List of attributes (color,normal, texture…)
• Not practical for traversing mesh
vertex 1 x y z
vertex 2 x y z
vertex 3 x y z
vertex 4 x y z
Incidence table
1
2
34
Triangle 0 1 a
Triangle 0 2 b
Triangle 0 3 c
Triangle 1 2 c
Triangle 1 1 d
Triangle 1 4 e
Triangle 2 1 a
v a
attribute a red
attribute b blue
3D Compression, SM’02 10Jarek Rossignac, GVU Center, Georgia Tech 1: T-meshes
T-meshes: manifold connectivity graph
• T-mesh = triangle set with a manifold connectivity graph– The corners of each triangle refer to different vertices
– Each edge has exactly two incident triangles
– Manifold vertices: The star of each vertex is connected• Star = union of edges and triangles incident upon the vertex
• Triangles form a surface that may be globally oriented– All triangle orientations are consistent (No Klein bottle)
• All triangles form a connected set– All pairs of triangles are connected
• Two adjacent triangles are connected
• Connectivity is a transitive relation
3D Compression, SM’02 11Jarek Rossignac, GVU Center, Georgia Tech 1: T-meshes
Connectivity/geometry discrepancy
• Connectivity of T-mesh may conflict with actual geometry– Vertices with different names may be coincident
– Edges with different names may be coincident
– Triangles, edges, and vertices may intersect
• T-mesh with consistent geometry– Triangles, edges, vertices are pairwise disjoint
• We consider edges and triangles to be open – I.e., not containing their boundary
• Manifold graphs may be used with invalid geometry– Coincident edges and vertices: Non-manifold singularities
– Self-intersecting surfaces
Non-manifold shapeManifold graph
3D Compression, SM’02 12Jarek Rossignac, GVU Center, Georgia Tech 1: T-meshes
Handles in T-meshes
• Handles correspond to through-holes– A sphere has zero handles, a torus has one
• The number of handles is well defined in a T-mesh– A handle cannot be identified as a particular set of triangles
• An edge-loop is a cycle of oriented edges– Each starts where the previous one ended, no repetition of vertices
• A T-mesh has k handles if and only if you can remove at most 2k edge-loops without disconnecting the mesh
• The genus of a T-mesh is the number of handles it has
connected
3D Compression, SM’02 13Jarek Rossignac, GVU Center, Georgia Tech 1: T-meshes
Simple T-meshes (STM) and T-patches
• We first look at simple meshes (no handles)– Homeomorphic to a sphere
– Incidence graph is a planar triangle graph
• We will also use the notion of a T-patch– Connected portion of an STM
– Bounded by a single edge-loop
3D Compression, SM’02 14Jarek Rossignac, GVU Center, Georgia Tech 1: T-meshes
Simple mesh
• A simple mesh is homeomorphic to a triangulated sphere– Orientable
– Manifold
– No boundary (no holes)
– No handles (no throu-holes)
• Properties– Each edge has exactly 2 incident triangles
– Each vertex has a single cycle of incident triangles
– May be drawn as a planar graph
3D Compression, SM’02 15Jarek Rossignac, GVU Center, Georgia Tech 1: T-meshes
Dual graphs and spanning trees
• Dual graph:– Nodes represent triangles
– Links represent edges• Join centers of adjacent triangles
• Vertex spanning tree (VST)– Edge-set connecting all vertices
– No cycles
– Cuts mesh into simply connected polygon with no interior vertices
• Triangle-spanning tree (TST)– Graph of remaining vertices
– No loops
– Connects all triangles
From Bosen
3D Compression, SM’02 16Jarek Rossignac, GVU Center, Georgia Tech 1: T-meshes
Euler formula for Simple Meshes
• Mesh has V vertices, E edges, and T triangles• E = (V-1)+(T-1)
– VST has V nodes and thus V-1 links– TST has T nodes and thus T-1 links
• E = 3T/2– There are 3 borders (edge-uses) per triangle– There are twice more edge-uses then edges
• T=2V-4– Because (V-1)+(T-1) = 3T/2– And hence V-2 = 3T/2-T = T/2
• There are twice more triangles than vertices• The number C of corners (vertex-uses) is about 6V
– C=3T=6V-12
• On average, a vertex is used 6 times
3D Compression, SM’02 17Jarek Rossignac, GVU Center, Georgia Tech 1: T-meshes
Properties of manifold meshes
• T triangles, E edges, V vertices, H handles, S shells• Euler: T-E+V=2S -2H
– Example: a tetrahedron has T=4, E=6, V=4, S=1, H=0…4-6+4=2-0
• Number of handles: H=S-(T-E+V)/2• Shared edges: E=3T/2
– 3 borders per triangle, 2 borders per edge
• Twice more triangles than vertices: T=2V+4(H-S)– T-3T/2+V=2S-2H– Assume H and S are much smaller than V
• Three times more edges than vertices: E=3V-6+6H– 2E/3-E+V=2-2H
vertices
triangles
edgesAdd 1 vertex, 2 triangles, and 3 edges
3D Compression, SM’02 18Jarek Rossignac, GVU Center, Georgia Tech 1: T-meshes
• Table of corners, for each corner c store:– c.v : integer reference to vertex table
– c.o : integer reference to opposite corner
– c.a : index to table of corner attributes
• Make the corners of each triangle consecutive– List them according to consistent orientation of triangles
– Can retrieve triangle number: c.t = c DIV 3
– Can retrieve next corner around triangle: c.n = 3t + (c+1)MOD 3
Corner table:data structure for T-meshes
c.t
c
c.v
c.o
c.n c.n.n
vertex 1 x y z
vertex 2 x y z
vertex 3 x y z
vertex 4 x y z
attribute a red
attribute b blue
Triangle 0 corner 0 1 7 a
Triangle 0 corner 1 2 8 b
Triangle 0 corner 2 3 5 c
Triangle 1 corner 3 2 9 c
Triangle 1 corner 4 1 6 d
Triangle 1 corner 5 4 2 e
v o a
1
2
340
12
3
4 5
3D Compression, SM’02 19Jarek Rossignac, GVU Center, Georgia Tech 1: T-meshes
• c.o can be derived from c.v (needs not be transmitted):
• Build table of triplets {min(c.n.v, c.n.n.v), max(c.n.v, c.n.n.v), c}– 230, 131, 122, 143, 244, 125, …
• Sort: – 122, 125 ...131... 143 ...230...244 …
• Pair-up consecutive entries 2k and 2k+1– (122, 125)...131... 143...230...244…
• Their corners are opposite– (122,125)...131...143...230...244…
Computing adjacency from incidence
Triangle 1 corner 0 1 a
Triangle 1 corner 1 2 b
Triangle 1 corner 2 3 c
Triangle 2 corner 3 2 c
Triangle 2 corner 4 1 d
Triangle 2 corner 5 4 e
v o a
Triangle 1 corner 0 1 a
Triangle 1 corner 1 2 b
Triangle 1 corner 2 3 5 c
Triangle 2 corner 3 2 c
Triangle 2 corner 4 1 d
Triangle 2 corner 5 4 2 e
v o a
1
2
340
12
3
4 5
0
12
3
4 5
1
2
34
3D Compression, SM’02 20Jarek Rossignac, GVU Center, Georgia Tech 1: T-meshes
Accessing left and right neighbors
• Can identify opposite corners of right and left neighbors– c.r = c.n.o
– c.l = c.n.n.o
c
c.v
c.o
c.l = c.n.n.oc.r = c.n.o
c.n c.p=c.n.n
3D Compression, SM’02 21Jarek Rossignac, GVU Center, Georgia Tech 1: T-meshes
Using adjacency table for T-mesh traversal
• Visit T-mesh (triangle-spanning tree)– Mark triangles as you visit
– Start with any corner c and call Visit(c)
– Visit(c) • mark c.t;
• IF NOT marked(c.r.t) THEN visit(c.r);
• IF NOT marked(c.l.t) THEN visit(c.l);
• Label vertices– Label vertices with consecutive integers
– Label(c.n.v); Label(c.n.n.v); Visit(c);
– Visit(c) • IF NOT labeled(c.v) THEN Label(c.v);
• mark c.t;
• IF NOT marked(c.r.t) THEN visit(c.r);
• IF NOT marked(c.l.t) THEN visit(c.l);
3D Compression, SM’02 22Jarek Rossignac, GVU Center, Georgia Tech 1: T-meshes
Summary
• Samples+incidence graph define triangles and corners (c.v)
• Attributes attached to corners (may be same for neighbors)
• T-mesh: oriented manifold incidence (consistent geometry?)
• Adjacency (c.o) supports T-mesh traversal (derived from c.v)
• Simple meshes, T=2V-4, H=0, S=1