Adjacency Data Structures

Similar documents
Adjacency Data Structures

Curves & Surfaces. Last Time? Progressive Meshes. Selective Refinement. Adjacency Data Structures. Mesh Simplification. Mesh Simplification

Mesh Repairing and Simplification. Gianpaolo Palma

Surface Simplification Using Quadric Error Metrics

Geometric Modeling in Graphics

Subdivision Surfaces. Homework 1: Last Time? Today. Bilinear Patch. Tensor Product. Spline Surfaces / Patches

Applications. Oversampled 3D scan data. ~150k triangles ~80k triangles

Subdivision Surfaces. Homework 1: Questions on Homework? Last Time? Today. Tensor Product. What s an illegal edge collapse?

Subdivision Surfaces. Homework 1: Questions/Comments?

Mesh Decimation. Mark Pauly

Geometric Modeling. Mesh Decimation. Mesh Decimation. Applications. Copyright 2010 Gotsman, Pauly Page 1. Oversampled 3D scan data

All the Polygons You Can Eat. Doug Rogers Developer Relations

Mesh Simplification. Mesh Simplification. Mesh Simplification Goals. Mesh Simplification Motivation. Vertex Clustering. Mesh Simplification Overview

Mesh Decimation Using VTK

As a consequence of the operation, there are new incidences between edges and triangles that did not exist in K; see Figure II.9.

Topologically Robust Mesh Modeling: Concepts, Data Structures, and Operations

Geometric Modeling Mortenson Chapter 11. Complex Model Construction

Appearance Preservation

Topologically Robust Mesh Modeling: Concepts, Data Structures and Operations

A Developer s Survey of Polygonal Simplification algorithms. CS 563 Advanced Topics in Computer Graphics Fan Wu Mar. 31, 2005

CGAL. Mesh Simplification. (Slides from Tom Funkhouser, Adam Finkelstein)

Physically-Based Modeling and Animation. University of Missouri at Columbia

Meshes. Mesh elements

Mesh and Mesh Simplification

A Comparison of Mesh Simplification Algorithms

Convex Hulls (3D) O Rourke, Chapter 4

Reversibility of the Quad-Edge operations in the Voronoi data structure

3-Dimensional Object Modeling with Mesh Simplification Based Resolution Adjustment

CS 283: Assignment 1 Geometric Modeling and Mesh Simplification

Geometric Features for Non-photorealistiic Rendering

Prime Time (Factors and Multiples)

To Do. Resources. Algorithm Outline. Simplifications. Advanced Computer Graphics (Spring 2013) Surface Simplification: Goals (Garland)

EECS 487: Interactive Computer Graphics

Single Triangle Strip and Loop on Manifolds with Boundaries

CS 4620 Midterm 1. Tuesday 22 October minutes

Geometric Modeling. Bing-Yu Chen National Taiwan University The University of Tokyo

and Recent Extensions Progressive Meshes Progressive Meshes Multiresolution Surface Modeling Multiresolution Surface Modeling Hugues Hoppe

Efficient Representation and Extraction of 2-Manifold Isosurfaces Using kd-trees

Mesh Representations & Geometry Processing

Polygonal Mesh. Geometric object made of vertices, edges and faces. Faces are polygons. Polyhedron. Triangular mesh Quad mesh. Pyramid Cube Sphere (?

Evaluating the Quality of Triangle, Quadrilateral, and Hybrid Meshes Before and After Refinement

Triangle meshes I. CS 4620 Lecture Steve Marschner. Cornell CS4620 Spring 2017

Triangle meshes. Computer Graphics CSE 167 Lecture 8

Geometry Processing & Geometric Queries. Computer Graphics CMU /15-662

Triangle meshes I. CS 4620 Lecture 2

Saab. Kyle McDonald. Polygon Meshes

Bands: A Physical Data Structure to Represent Both Orientable and Non-Orientable 2-Manifold Meshes

Geometry Vocabulary. acute angle-an angle measuring less than 90 degrees

CS 532: 3D Computer Vision 12 th Set of Notes

Computergrafik. Matthias Zwicker Universität Bern Herbst 2016

L1 - Introduction. Contents. Introduction of CAD/CAM system Components of CAD/CAM systems Basic concepts of graphics programming

CSE 163: Assignment 2 Geometric Modeling and Mesh Simplification

acute angle An angle with a measure less than that of a right angle. Houghton Mifflin Co. 2 Grade 5 Unit 6

GEOMETRY MODELING & GRID GENERATION

Handles. The justification: For a 0 genus triangle mesh we can write the formula as follows:

Meshes and Manifolds. Computer Graphics CMU /15-662

Single Triangle Strip and Loop on Manifolds with Boundaries

Flavor of Computational Geometry. Convex Hull in 2D. Shireen Y. Elhabian Aly A. Farag University of Louisville

Manipulating the Boundary Mesh

Hyperbolic Geometry on the Figure-Eight Knot Complement

Review. Stephen J. Guy

Geometric Modeling and Processing

Meshes: Catmull-Clark Subdivision and Simplification

Compression of Tetrahedral Meshes

3/1/2010. Acceleration Techniques V1.2. Goals. Overview. Based on slides from Celine Loscos (v1.0)

GEOMETRIC SEARCHING PART 1: POINT LOCATION

1 Appendix to notes 2, on Hyperbolic geometry:

Fast Stellar Mesh Simplification

Triangle meshes 2. CS 4620 Lecture Steve Marschner. Cornell CS4620 Fall 2018 Lecture 3

Subdivision Curves and Surfaces: An Introduction

A Flavor of Topology. Shireen Elhabian and Aly A. Farag University of Louisville January 2010

Computergrafik. Matthias Zwicker. Herbst 2010

Polygon Meshes and Implicit Surfaces

Simple Silhouettes for Complex Surfaces

Polygon Meshes and Implicit Surfaces

Processing 3D Surface Data

CSE 554 Lecture 6: Fairing and Simplification

INTRODUCTION TO 3-MANIFOLDS

Level Set Extraction from Gridded 2D and 3D Data

Chapter 12 and 11.1 Planar graphs, regular polyhedra, and graph colorings

Unit 1, Lesson 1: Moving in the Plane

COMPUTING CONSTRAINED DELAUNAY

What would you see if you live on a flat torus? What is the relationship between it and a room with 2 mirrors?

Polygonization of Implicit Surfaces

EOC Review: Practice: 1. In the circle below, AB = 2BC. What is the probability of hitting the shaded region with a random dart?

Hyperbolic structures and triangulations

Triangle meshes I. CS 4620 Lecture Kavita Bala (with previous instructor Marschner) Cornell CS4620 Fall 2015 Lecture 2

Lesson 1. Unit 2 Practice Problems. Problem 2. Problem 1. Solution 1, 4, 5. Solution. Problem 3

Computational Geometry and Computer Graphics

Hyperbolic Structures from Ideal Triangulations

Transactions on Information and Communications Technologies vol 18, 1998 WIT Press, ISSN

Mesh Basics: Definitions, Topology & Data Structures. Standard Graph Definitions

03 - Reconstruction. Acknowledgements: Olga Sorkine-Hornung. CSCI-GA Geometric Modeling - Spring 17 - Daniele Panozzo

13 - Meshes. Acknowledgement: Enrico Puppo. CSCI-GA Computer Graphics - Fall 16 - Daniele Panozzo

DISCRETE DIFFERENTIAL GEOMETRY: AN APPLIED INTRODUCTION Keenan Crane CMU /858B Fall 2017

Final Project, Digital Geometry Processing

Motion Planning. O Rourke, Chapter 8

11/1/13. Polygon Meshes and Implicit Surfaces. Shape Representations. Polygon Models in OpenGL. Modeling Complex Shapes

Notation. Triangle meshes. Topology/geometry examples. Validity of triangle meshes. n T = #tris; n V = #verts; n E = #edges

Deformation Sensitive Decimation

Transcription:

Last Time? Simple Transformations Adjacency Data Structures material from Justin Legakis Classes of Transformations Representation homogeneous coordinates Composition not commutative Orthographic & Perspective Projections Well-Formed Surfaces Orientable Surfaces Computational Complexity Well-Formed Surfaces Components Intersect "Properly" Faces are: disjoint, share single Vertex, or share 2 Vertices and the Edge joining them Every edge is incident to exactly 2 vertices Every edge is incident to exactly 2 faces Local Topology is "Proper" Neighborhood of a vertex is homeomorphic to a disk (permits stretching and bending, but not tearing) Called a 2-manifold Boundaries: half-disk, "manifold with boundaries" Global Topology is "Proper" Connected Closed Bounded Orientable Surfaces? from mathworld.wolfram.com 1

Closed Surfaces and Refraction Original Teapot model is not "watertight": intersecting surfaces at spout & handle, no bottom, a hole at the spout tip, a gap between lid & base Requires repair before ray tracing with refraction Computational Complexity Adjacent Element Access Time linear, constant time average case, or constant time? requires loops/recursion/if? Memory variable size arrays or constant size? Maintenance ease of editing ensuring consistency Henrik Wann Jensen Questions? List of Polygons List of Edges List of Unique Vertices & Indexed Faces: Simple Adjacency Data Structure List of Polygons: List of Edges: (3,-2,5), (3,6,2), (-6,2,4) (2,2,4), (0,-1,-2), (9,4,0), (4,2,9) (1,2,-2), (8,8,7), (-4,-5,1) (-8,2,7), (-2,3,9), (1,2,-7) (3,6,2), (-6,2,4) (2,2,4), (0,-1,-2) (9,4,0), (4,2,9) (8,8,7), (-4,-5,1) (-8,2,7), (1,2,-7) (3,0,-3), (-7,4,-3) (9,4,0), (4,2,9) (3,6,2), (-6,2,4) (-3,0,-4), (7,-3,-4) 2

List of Unique Vertices & Indexed Faces: Problems with Simple Data Structures Vertices: Faces: (-1, -1, -1) (-1, -1, 1) (-1, 1, -1) (-1, 1, 1) (1, -1, -1) (1, -1, 1) (1, 1, -1) (1, 1, 1) 1 2 4 3 5 7 8 6 1 5 6 2 3 4 8 7 1 3 7 5 2 6 8 4 No Adjacency Information Linear-time Searches Adjacency is implicit for structured meshes, but what do we do for unstructured meshes? Mesh Data So, in addition to: Geometric Information (position) Attribute Information (color, texture, temperature, population density, etc.) Let s store: Topological Information (adjacency, connectivity) Simple Adjacency Each element (vertex, edge, and face) has a list of pointers to all incident elements Queries depend only on local complexity of mesh Data structures do not have fixed size Slow! Big! Too much work to maintain! Questions? Winged Edge (Baumgart, 1975) 3

Winged Edge (Baumgart, 1975) Each edge stores pointers to 4 Adjacent Edges Vertices and Faces have a single pointer to one incident Edge Data Structure Size? Fixed How do we gather all faces surrounding one vertex? Messy, because there is no consistent way to order pointers VERTEX FACE HalfEdge (Eastman, 1982) SplitEdge Corner QuadEdge (Guibas and Stolfi, 1985) FacetEdge (Dobkin and Laszlo, 1987) EDGE HalfEdge (Eastman, 1982) Every edge is represented by two directed HalfEdge structures Each HalfEdge stores: vertex at end of directed edge symmetric half edge face to left of edge next points to the HalfEdge counter-clockwise around face on left Orientation is essential, but can be done consistently! HalfEdge (Eastman, 1982) Starting at a half edge, how do we find: the other vertex of the edge? the other face of the edge? the clockwise edge around the face at the left? all the edges surrounding the face at the left? all the faces surrounding the vertex? HalfEdge (Eastman, 1982) Loop around a Face: HalfEdgeMesh::FaceLoop(HalfEdge *HE) { HalfEdge *loop = HE; do { loop = loop->next; } while (loop!= HE); } Loop around a Vertex: HalfEdgeMesh::VertexLoop(HalfEdge *HE) { HalfEdge *loop = HE; do { loop = loop->next->sym; } while (loop!= HE); } HalfEdge (Eastman, 1982) Data Structure Size? Fixed Data: geometric information stored at Vertices attribute information in Vertices, HalfEdges, and/or Faces topological information in HalfEdges only! Orientable surfaces only (no Mobius Strips!) Local consistency everywhere implies global consistency Time Complexity? linear in the amount of information gathered 4

SplitEdge Data Structure: Corner Data Structure: The Corner data structure is its own dual! HalfEdge and SplitEdge are dual structures! SplitEdgeMesh::FaceLoop() = HalfEdgeMesh::VertexLoop() SplitEdgeMesh::VertexLoop() = HalfEdgeMesh::FaceLoop() Questions? HalfEdge (Eastman, 1982) SplitEdge Corner QuadEdge (Guibas and Stolfi, 1985) FacetEdge (Dobkin and Laszlo, 1987) QuadEdge (Guibas and Stolfi, 1985) Consider the Mesh and its Dual simultaneously Vertices and Faces switch roles, we just re-label them Edges remain Edges Now there are eight ways to look at each edge Four ways to look at primal edge Four ways to look at dual edge QuadEdge (Guibas and Stolfi, 1985) Relations Between Edges: Edge Algebra Elements in Edge Algebra: Each of 8 ways to look at each edge Operators in Edge Algebra: Rot: Bug rotates 90 degrees to its left Sym: Bug turns around 180 degrees Flip: Bug flips up-side down Onext: Bug rotates CCW about its origin (either Vertex or Face) 5

QuadEdge (Guibas and Stolfi, 1985) Some Properties of Flip, Sym, Rot, and Onext: e Rot 4 = e e Rot 2 e e Flip 2 = e e Flip Rot Flip Rot = e e Rot Flip Rot Flip = e e Rot Onext Rot Onext = e e Flip Onext Flip Onext = e e Flip -1 = e Flip e Sym = e Rot 2 e Rot -1 = e Rot 3 e Rot -1 = e Flip Rot Flip e Onext -1 = e Rot Onext Rot e Onext -1 = e Flip Onext Flip QuadEdge (Guibas and Stolfi, 1985) Other Useful Definitions: e Lnext = e Rot -1 Onext Rot e Rnext = e Rot Onext Rot -1 e Dnext = e Sym Onext Sym -1 e Oprev = e Onext -1 = e Rot Onext Rot e Lprev = e Lnext -1 = e Onext Sym e Rprev = e Rnext -1 = e Sym Onext e Dprev = e Dnext -1 = e Rot -1 Onext Rot All of these functions can be expressed as a constant number of Rot, Sym, Flip, and Onext operations independent of the local topology and the global size and complexity of the mesh. FacetEdge (Dobkin and Laszlo, 1987) Questions? QuadEdge (2D, surface) FacetEdge (3D, volume) Faces Polyhedra / Cells Edge Polygon & Edge pair Hugues Hoppe Progressive Meshes SIGGRAPH 1996 Progressive Meshes vertex split / edge collapse geometry & discrete/scalar attributes priority queue Level of Detail geomorphs Progressive Transmission Mesh Compression Selective Refinement view dependent 6

Selective Refinement Preserving Discontinuity Curves Other Simplification Strategies When to Preserve Topology? Remove a vertex & surrounding triangles, re-triangulate the hole Merge Nearby Vertices will likely change the topology from Garland & Heckbert, Surface Simplification Using Quadric Error Metrics SIGGRAPH 1997 from Garland & Heckbert, Surface Simplification Using Quadric Error Metrics SIGGRAPH 1997 Quadric Error Simplification Judging Element Quality Contract (merge) vertices vi and vj if: How equilateral are the elements? (vi, vj) is an edge, or vi vj < t, where t is a threshold parameter Track cummulative error by summing 4x4 quadric error matrics after each operation: Garland & Heckbert, Surface Simplification Using Quadric Error Metrics SIGGRAPH 1997 For Triangles? Ratio of shortest to longest edge Ratio of area to perimeter2 Smallest angle Ratio of area to area of smallest circumscribed circle For Tetrahedra? Ratio of volume2 to surface area3 Smallest solid angle Ratio of volume to volume of smallest circumscribed sphere 7

Readings for Tuesday (1/20) pick one "Free-form deformation of solid geometric models", Sederberg & Parry, SIGGRAPH 1986 "Teddy: A Sketching Interface for 3D Freefrom Design", Igarashi et al., SIGGRAPH 1999 Post a comment or question on the LMS discussion by 10am on Tuesday 8