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

Slides:



Advertisements
Similar presentations
Planar Orientations Chapter 4 ( ) in the book Written By: Tomer Heber.
Advertisements

2/14/13CMPS 3120 Computational Geometry1 CMPS 3120: Computational Geometry Spring 2013 Planar Subdivisions and Point Location Carola Wenk Based on: Computational.
Krakow, Summer 2011 Schnyder’s Theorem and Relatives William T. Trotter
Computational Topology for Computer Graphics Klein bottle.
Discrete Geometry Tutorial 2 1
Mesh Representation, part II based on: Data Structures for Graphics, chapter 12 in Fundamentals of Computer Graphics, 3 rd ed. (Shirley & Marschner) Slides.
Rüdiger Westermann Lehrstuhl für Computer Graphik und Visualisierung
CSE554ContouringSlide 1 CSE 554 Lecture 4: Contouring Fall 2013.
3. Delaunay triangulation
The Half-Edge Data Structure

Mesh Simplification Global and Local Methods:
Graph & BFS.
Graphics Programming: Polygon Filling
Computational Geometry Seminar Lecture 1
Martin Isenburg University of North Carolina at Chapel Hill Triangle Fixer: Edge-based Connectivity Compression.
Polygonal Mesh – Data Structure and Smoothing
Content Subdivision First some basics (control point polygon, mesh)
Polygonal Meshes 3D Object Representation -Tyler Abrams.
Representation Issues in Data Exchange for RP-LM Sara McMains U.C. Berkeley.
Seminar 1 Surface Rendering, Decimation Presented By Sonali Barua Date:10/31/2005.
W. D. Grover TRLabs & University of Alberta © Wayne D. Grover 2002, 2003 Graph theory and routing (initial background) E E Lecture 4.
Complex Model Construction Mortenson Chapter 11 Geometric Modeling
An Introduction to 3D Geometry Compression and Surface Simplification Connie Phong CSC/Math April 2007.
CS CS 175 – Week 4 Triangle Mesh Smoothing Discrete Differential Geometry.
Topological Surgery Progressive Forest Split Papers by Gabriel Taubin et al Presented by João Comba.
Curve Curve: The image of a continous map from [0,1] to R 2. Polygonal curve: A curve composed of finitely many line segments. Polygonal u,v-curve: A polygonal.
The Art Gallery Problem
The Art Gallery Problem
05 Edgebreaker, 1 Jarek Rossignac, CoC & GVU Center, Georgia Tech SM, June 2002 Edgebreaker (EB) Second generation 3D compression Faster, simpler, more.
CS-321 Dr. Mark L. Hornick 1 3-D Object Modeling.
Matthew Bowling Euler’s Theorem Mathfest Spring ‘15.
9/7/06CS 6463: AT Computational Geometry1 CS 6463: AT Computational Geometry Fall 2006 Triangulations and Guarding Art Galleries Carola Wenk.
Graph Theory Chapter 6 Planar Graphs Ch. 6. Planar Graphs.
Mesh Representation, part I
01 Introduction, 1 Jarek Rossignac, CoC & GVU Center, Georgia Tech Solid Modeling Tutorial, June 2002 ACM Solid Modeling Tutorial T3: Compression, simplification,
Algorithms for Triangulations of a 3D Point Set Géza Kós Computer and Automation Research Institute Hungarian Academy of Sciences Budapest, Kende u
1 Surface Applications Fitting Manifold Surfaces To 3D Point Clouds, Cindy Grimm, David Laidlaw and Joseph Crisco. Journal of Biomechanical Engineering,
Mesh Data Structure. Meshes Boundary edge: adjacent to 1 face Regular edge: adjacent to 2 faces Singular edge: adjacent to >2 faces Mesh: straight-line.
1 Adding charts anywhere Assume a cow is a sphere Cindy Grimm and John Hughes, “Parameterizing n-holed tori”, Mathematics of Surfaces X, 2003 Cindy Grimm,
Course 13 Curves and Surfaces. Course 13 Curves and Surface Surface Representation Representation Interpolation Approximation Surface Segmentation.
Planar Subdivision Induced by planar embedding of a graph. Connected if the underlying graph is. edge vertex disconnected subdivision Complexity = #vertices.
1 Compressing Triangle Meshes Leila De Floriani, Paola Magillo University of Genova Genova (Italy) Enrico Puppo National Research Council Genova (Italy)
Planar Graphs Graph Coloring
Planar Graphs Prepared by: Asa Dan, Ofer Kiselov, Hillel Mendelson & Ofir Pupko Graph Theory with CE Applications Technion 2015.
1 12/2/2015 MATH 224 – Discrete Mathematics Formally a graph is just a collection of unordered or ordered pairs, where for example, if {a,b} G if a, b.
Solid Modeling Ref. Mantyla. Introduction Aim of modeling: The search of a media of communication.
Many of the figures from this book may be reproduced free of charge in scholarly articles, proceedings, and presentations, provided only that the following.
CSE554ContouringSlide 1 CSE 554 Lecture 4: Contouring Fall 2015.
Mesh data structure & file format
CS418 Computer Graphics John C. Hart
Unit – V Graph theory. Representation of Graphs Graph G (V, E,  ) V Set of vertices ESet of edges  Function that assigns vertices {v, w} to each edge.
Graph Theory and Applications
04 MPEG-4, 1 Jarek Rossignac, CoC & GVU Center, Georgia Tech SM, June D Compression Jarek Rossignac GVU Center and College of Computing Georgia Tech,
1/29/15CMPS 3130/6130 Computational Geometry1 CMPS 3130/6130 Computational Geometry Spring 2015 Triangulations and Guarding Art Galleries Carola Wenk.
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley. Ver Chapter 13: Graphs Data Abstraction & Problem Solving with C++
Greg Humphreys CS445: Intro Graphics University of Virginia, Fall 2003 Subdivision Surfaces Greg Humphreys University of Virginia CS 445, Fall 2003.
1 k Jarek Rossignac,  2008 Topology  What is a polygon?  Set operations  Interior, boundary, exterior  Skin, Hair, Wound,
1/57 CS148: Introduction to Computer Graphics and Imaging Geometric Modeling CS148 Lecture 6.
9/8/10CS 6463: AT Computational Geometry1 CS 6463: AT Computational Geometry Fall 2010 Triangulations and Guarding Art Galleries Carola Wenk.
Rossignac, Szymczak, King, Safonova
CENG 789 – Digital Geometry Processing 01- Introduction
Graph theory Definitions Trees, cycles, directed graphs.
The Art Gallery Problem
The Art Gallery Problem
Jarek Rossignac GVU Center Georgia Institute of Technology
Triangle Meshes CS7491 Prof. Jarek Rossignac College of Computing
Iso-Surface extraction from red and green samples on a regular lattice
Triangle Meshes CS451 Prof. Jarek Rossignac College of Computing
Agenda Review Lecture Content: Shortest Path Algorithm
Presentation transcript:

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

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)

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: Triangle Triangle Triangle Triangle 2 Triangle 3 Triangle t3t3 v4v4 v2v2 v5v5 V(3B+k) bits V(6log 2 V) bits T = 2V

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

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

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.

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

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

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

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

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

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

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

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

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

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

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 a Triangle 0 corner b Triangle 0 corner c Triangle 1 corner c Triangle 1 corner d Triangle 1 corner e v o a

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, … Pair-up consecutive entries 2k and 2k+1 –(122, 125) … Their corners are opposite –(122,125) … 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 c Triangle 2 corner 3 2 c Triangle 2 corner 4 1 d Triangle 2 corner e v o a

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

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

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