Presentation is loading. Please wait.

Presentation is loading. Please wait.

3D Compression, SM’02 1Jarek Rossignac, GVU Center, Georgia Tech1: T-meshes Triangle meshes Jarek Rossignac GVU Center and College of Computing Georgia.

Similar presentations


Presentation on theme: "3D Compression, SM’02 1Jarek Rossignac, GVU Center, Georgia Tech1: T-meshes Triangle meshes Jarek Rossignac GVU Center and College of Computing Georgia."— Presentation transcript:

1 3D Compression, SM’02 1Jarek Rossignac, GVU Center, Georgia Tech1: T-meshes Triangle meshes Jarek Rossignac GVU Center and College of Computing Georgia Tech, Atlanta http://www.gvu.gatech.edu/~jarek

2 3D Compression, SM’02 2Jarek Rossignac, GVU Center, Georgia Tech1: 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-manifoldFaces (flat or curved)

3 3D Compression, SM’02 3Jarek Rossignac, GVU Center, Georgia Tech1: 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 c vertex 1 vertex 2 vertex 3 x y z c Triangle/vertex incidence: 3 2 4 6 5 8 Triangle 4 7 5 6 Triangle 5 1 2 3 Triangle 1 4 5 2 Triangle 2 Triangle 3 Triangle 6 8 5 1 t3t3 v4v4 v2v2 v5v5 V(3B+k) bits V(6log 2 V) bits T = 2V

4 3D Compression, SM’02 4Jarek Rossignac, GVU Center, Georgia Tech1: 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

5 3D Compression, SM’02 5Jarek Rossignac, GVU Center, Georgia Tech1: 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 vertex corner edge

6 3D Compression, SM’02 6Jarek Rossignac, GVU Center, Georgia Tech1: 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 z vertex 1 vertex 2 vertex 3 Triangle 2 Triangle 1 Triangle 3 Very verbose! Not good for traversal.

7 3D Compression, SM’02 7Jarek Rossignac, GVU Center, Georgia Tech1: 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

8 3D Compression, SM’02 8Jarek Rossignac, GVU Center, Georgia Tech1: 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

9 3D Compression, SM’02 9Jarek Rossignac, GVU Center, Georgia Tech1: 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 3 4 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

10 3D Compression, SM’02 10Jarek Rossignac, GVU Center, Georgia Tech1: 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

11 3D Compression, SM’02 11Jarek Rossignac, GVU Center, Georgia Tech1: 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 shape Manifold graph

12 3D Compression, SM’02 12Jarek Rossignac, GVU Center, Georgia Tech1: 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

13 3D Compression, SM’02 13Jarek Rossignac, GVU Center, Georgia Tech1: 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

14 3D Compression, SM’02 14Jarek Rossignac, GVU Center, Georgia Tech1: 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

15 3D Compression, SM’02 15Jarek Rossignac, GVU Center, Georgia Tech1: 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

16 3D Compression, SM’02 16Jarek Rossignac, GVU Center, Georgia Tech1: 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

17 3D Compression, SM’02 17Jarek Rossignac, GVU Center, Georgia Tech1: 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 edges Add 1 vertex, 2 triangles, and 3 edges

18 3D Compression, SM’02 18Jarek Rossignac, GVU Center, Georgia Tech1: 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 3 4 0 1 2 3 4 5

19 3D Compression, SM’02 19Jarek Rossignac, GVU Center, Georgia Tech1: 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 3 4 0 1 2 3 4 5 0 1 2 3 4 5 1 2 3 4

20 3D Compression, SM’02 20Jarek Rossignac, GVU Center, Georgia Tech1: 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.o c.r = c.n.o c.n c.p=c.n.n

21 3D Compression, SM’02 21Jarek Rossignac, GVU Center, Georgia Tech1: 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);

22 3D Compression, SM’02 22Jarek Rossignac, GVU Center, Georgia Tech1: 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


Download ppt "3D Compression, SM’02 1Jarek Rossignac, GVU Center, Georgia Tech1: T-meshes Triangle meshes Jarek Rossignac GVU Center and College of Computing Georgia."

Similar presentations


Ads by Google