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.

Slides:



Advertisements
Similar presentations
Planar Subdivision Induced by planar embedding of a graph. Connected if the underlying graph is. edge vertex hole in f face f disconnected subdivision.
Advertisements

2/14/13CMPS 3120 Computational Geometry1 CMPS 3120: Computational Geometry Spring 2013 Planar Subdivisions and Point Location Carola Wenk Based on: Computational.
Succinct Representation of Balanced Parentheses, Static Trees and Planar Graphs J. Ian Munro & Venkatesh Raman.
Geometry Graph and Meshes Surface Properties Bounding Volumes
3D Compression, SM’02 1Jarek Rossignac, GVU Center, Georgia Tech1: T-meshes Triangle meshes Jarek Rossignac GVU Center and College of Computing Georgia.
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
Fractional Cascading CSE What is Fractional Cascading anyway? An efficient strategy for dealing with iterative searches that achieves optimal.
Quadtrees Raster and vector.
CSE554ContouringSlide 1 CSE 554 Lecture 4: Contouring Fall 2013.
1 Terrain. Game Type Oriented Game Type Oriented Terrain Terrain –For visual ( 廣義的場景 ) »Ground / Building / Static models / Dynamic models –For terrain.
CS CS 175 – Week 4 Mesh Decimation General Framework, Progressive Meshes.

Polygonal Mesh – Data Structure and Smoothing
Content Subdivision First some basics (control point polygon, mesh)
Polygonal Meshes 3D Object Representation -Tyler Abrams.
Seminar 1 Surface Rendering, Decimation Presented By Sonali Barua Date:10/31/2005.
Graphs G = (V,E) V is the vertex set. Vertices are also called nodes and points. E is the edge set. Each edge connects two different vertices. Edges are.
CENG 789 – Digital Geometry Processing 02- Mesh Data Structures Asst. Prof. Yusuf Sahillioğlu Computer Eng. Dept,, Turkey.
CS CS 175 – Week 4 Triangle Mesh Smoothing Discrete Differential Geometry.
Advanced Computer Graphics (Spring 2005) COMS 4162, Lecture 10: Mesh simplification Ravi Ramamoorthi Many slides courtesy.
Ziting (Vivien) Zhou1 Drawing Graphs By Computer Graph from
Mesh Representation, part I
Chapter 9 – Graphs A graph G=(V,E) – vertices and edges
Surface Simplification Using Quadric Error Metrics Michael Garland Paul S. Heckbert.
A D V A N C E D C O M P U T E R G R A P H I C S CMSC 635 January 15, 2013 Quadric Error Metrics 1/20 Quadric Error Metrics.
Geometry Images Xiang Gu Harvard University Steven J. Gortler Harvard university Hugues Hoppe Microsoft Research Some slides taken from Hugues Hoppe.
Planar Subdivision Induced by planar embedding of a graph. Connected if the underlying graph is. edge vertex disconnected subdivision Complexity = #vertices.
Subdivision Schemes Basic idea: Start with something coarse, and refine it into smaller pieces for rendering –We have seen how subdivision may be used.
Computer Graphics Basic 3D Geometry CO2409 Computer Graphics Week 5-1.
Data Structures & Algorithms Graphs
Arrangements and Duality Sanjay Sthapit Comp290 10/6/98.
1/24 Introduction to Graphs. 2/24 Graph Definition Graph : consists of vertices and edges. Each edge must start and end at a vertex. Graph G = (V, E)
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
Computer Graphics Rendering 2D Geometry CO2409 Computer Graphics Week 2.
By Eugene Adams.  Vertices  Edges  Faces  Polygons  Meshes  2D co-ordinates  3D co-ordinates.
CS418 Computer Graphics John C. Hart
Vertices, Edges and Faces By Jordan Diamond. Vertices In geometry, a vertices is a special kind of point which describes the corners or intersections.
Advanced Computer Graphics CSE 190 [Spring 2015], Lecture 7 Ravi Ramamoorthi
Robert Pless, CS 546: Computational Geometry Lecture #3 Last Time: Plane Sweep Algorithms, Segment Intersection, + (Element Uniqueness)
Graphs A graphs is an abstract representation of a set of objects, called vertices or nodes, where some pairs of the objects are connected by links, called.
Greg Humphreys CS445: Intro Graphics University of Virginia, Fall 2003 Subdivision Surfaces Greg Humphreys University of Virginia CS 445, Fall 2003.
Data Structures & Algorithms Graphs Richard Newman based on book by R. Sedgewick and slides by S. Sahni.
GRAPHS. Graph Graph terminology: vertex, edge, adjacent, incident, degree, cycle, path, connected component, spanning tree Types of graphs: undirected,
COMPUTER GRAPHICS CS 482 – FALL 2015 SEPTEMBER 10, 2015 TRIANGLE MESHES 3D MESHES MESH OPERATIONS.
Graph Representations And Traversals. Graphs Graph : – Set of Vertices (Nodes) – Set of Edges connecting vertices (u, v) : edge connecting Origin: u Destination:
Advanced Computer Graphics (Spring 2013) Mesh representation, overview of mesh simplification Many slides courtesy Szymon Rusinkiewicz.
Solid Modeling Dr. Scott Schaefer.
3D Object Representations. Introduction Line and circle and polygon algorithms- represented simple and smooth object. Some Natural object are neither.
Subdivision Schemes. Center for Graphics and Geometric Computing, Technion What is Subdivision?  Subdivision is a process in which a poly-line/mesh is.
CENG 477 Introduction to Computer Graphics
Graphs.

Computer graphics 3D solid modeling.
CENG 789 – Digital Geometry Processing 04- Mesh Data Structures
Advanced Computer Graphics
Rossignac, Szymczak, King, Safonova
Computer Graphics Index Buffers
Boundary Representations and Topology
CMPS 3130/6130 Computational Geometry Spring 2017
Meshes.
Graph Theory By Amy C. and John M..
Graphs.
Graphs G = (V, E) V are the vertices; E are the edges.
GRAPHS G=<V,E> Adjacent vertices Undirected graph
Subdivision Surfaces 고려대학교 컴퓨터 그래픽스 연구실 cgvr.korea.ac.kr.
Chapter 14 Graphs © 2011 Pearson Addison-Wesley. All rights reserved.
Presentation transcript:

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 graph embedded in R 3 Closed mesh: mesh with no boundary edges Manifold mesh: mesh with no singular edges Corners ⊆ V x F Half-edges ⊆ E x F

What should be stored? – Geometry: 3D coordinates – Connectivity Adjacency relationships – Attributes e.g. normal, color, texture coordinate Per vertex, per face, per edge, per corner Data Structures

What should it support? – Rendering – Geometry queries What are the vertices of face #2? Is vertex A adjacent to vertex H ? Which faces are adjacent to face #1? – Modifications Remove/add a vertex/face Vertex split, edge collapse

Data Structures How good is a data structure? – Time to construct (preprocessing) – Time to answer a query – Time to perform an operation – Space complexity – Redundancy

Mesh Data Structures Adjacency-blind schemes – Independent faces – Shared vertex Adjacency-aware schemes – Adjacency lists Face based connectivity Edge based connectivity Half edge – Adjacency matrix – Corner table

Independent Faces Pros – Simple – STL file Cons – No connectivity  not for topological queries – Redundancy

Shared Vertex Pros – Convenient and efficient (memory wise) – Can represent non-manifold meshes Cons – Too simple - not enough information on relations between vertices & faces

Shared Vertex What are the vertices of face f 1 ? – O(1) – first triplet from face list

Shared Vertex What are the one-ring neighbors of v 3 ? – Requires a full pass over all faces

Shared Vertex Are vertices v 1 and v 5 adjacent? – Requires a full pass over all faces

Complete Adjacency Lists Store all vertex, edge, and face adjacencies – Efficient topology traversal – Extra storage

Partial Adjacency Lists Can we store only some adjacency relationships and derive others?

Face Based Connectivity Manifold triangular meshes Vertex – Position – 1 adjacent face index Face – 3 vertex indices – 3 neighboring face indices Pros – most adjacency queries in O(1) time Cons – No (explicit) edge information

Edge Based Connectivity(Winged Edge) Vertex – Position – 1 adjacent edge index Edge – 2 vertex indices – 2 neighboring face indices – 4 edges Face – 1 edge index

Edge Based Connectivity(Winged Edge) Example

Edge Based Connectivity(Winged Edge) Pros – Most adjacencies in O(1) time – Arbitrary polygons Cons – No edge orientation information

Half Edge Vertex record: – Coordinates – Pointer to one half-edge that has v as its origin Face record: – Pointer to one half-edge on its boundary Half-edge record: – Pointer to its origin, origin(e) – Pointer to its twin half-edge, twin(e) – Pointer to the face it bounds, IncidentFace(e) (face lies to left of e when traversed from origin to destination) – Next and previous edge on boundary of IncidentFace(e)

Half Edge Operations supported – Walk around boundary of given face – Visit all edges incident to vertex v Queries – Most queries are O(1)

Half Edge Example

Half Edge Example (cont.)

Half Edge Pros – Most adjacency queries in O(1) time – Local operations are O(1) (usually) Cons – Represents only manifold meshes

Adjacency Matrix View mesh as connected graph Given n vertices build n*n matrix of adjacency information – Entry (i,j) is TRUE if vertices i and j are adjacent Geometric info – list of vertex coordinates Add faces - list of triplets of vertex indices(v1,v2,v3)

Adjacency Matrix Example

Adjacency Matrix Symmetric for undirected simple graphs (A n ) ij = # paths of length n from v i to v j Pros – Information on vertices adjacency – Stores non-manifold meshes Cons – Connects faces to their vertices, BUT NO connection between vertex and its face How to find the 1-ring neighboring faces for a vertex?

Corner Table Corner c contains – Triangle – c.t – Vertex – c.v – Next corner in c.t (ccw) – c.n – Previous corner – c.p (==c.n.n) – Corner opposite c – c.o E edge opposite c – not incident on c.v c.o couples triangle T adjacent to c.t across E with vertex of T not incident on E – Right corner – c.r – corner opposite c.n (==c.n.o) – Left corner – c.l (== c.p.o == c.n.n.o) Corner: Coupling of vertex with one of its incident triangles

Corner Table Store – Corner table – For each vertex – a list of all its corners Corner number j*3-2, j*3-1 and j*3 match face number j ( j = 1, 2, … ) – No need for explicit face storage

Corner Table Example

Corner Table Pros – Topological queries in O(1) time – Most operations are O(1) – Convenient for rendering (triangle fans) Cons – Only triangular, manifold meshes – Redundancy (but not too high)

Quiz For each of the above data structure – What are the vertices of face f i ? – What is the 1-ring neighbors (vertices/edges/faces) of vertex v i ? – Are vertices v i and v j adjacent? 1-ring neighbor loop traversal as shown on the right, if half edge is used.