Polygonal Mesh – Data Structure and Processing

Slides:



Advertisements
Similar presentations
Hugues Hoppe - SIGGRAPH 96 - Progressive Meshes
Advertisements

 Over-all: Very good idea to use more than one source. Good motivation (use of graphics). Good use of simplified, loosely defined -- but intuitive --
Surface Simplification using Quadric Error Metrics Guowei Wu.
Surface Simplification Using Quadric Error Metrics Speaker: Fengwei Zhang September
Advanced Computer Graphics (Fall 2010) CS 283, Lecture 7: Quadric Error Metrics Ravi Ramamoorthi
Developer’s Survey of Polygonal Simplification Algorithms Based on David Luebke’s IEEE CG&A survey paper.
Real-Time Rendering POLYGONAL TECHNIQUES Lecture 05 Marina Gavrilova.
Smooth view-dependent LOD control and its application to terrain rendering Hugues Hoppe Microsoft Research IEEE Visualization 1998.
High-Quality Simplification with Generalized Pair Contractions Pavel Borodin,* Stefan Gumhold, # Michael Guthe,* Reinhard Klein* *University of Bonn, Germany.
New quadric metric for simplifying meshes with appearance attributes Hugues Hoppe Microsoft Research IEEE Visualization 1999 Hugues Hoppe Microsoft Research.
Stefan Gumhold,* Pavel Borodin, # Reinhard Klein # *University of Tuebingen, Germany # University of Bonn, Germany Intersection Free Simplification.
CS CS 175 – Week 4 Mesh Decimation General Framework, Progressive Meshes.
Haptic Rendering using Simplification Comp259 Sung-Eui Yoon.
View-Dependent Refinement of Progressive Meshes Hugues Hoppe Microsoft Research SIGGRAPH 97.
Compression opportunities using progressive meshes Hugues Hoppe Microsoft Research SIGGRAPH 98 course: “3D Geometry compression”
Mesh Simplification Global and Local Methods:
CENG 789 – Digital Geometry Processing 05- Smoothing and Remeshing
Polygonal Mesh – Data Structure and Smoothing
Visualization and graphics research group CIPIC January 30, 2003Multiresolution (ECS 289L) - Winter MAPS – Multiresolution Adaptive Parameterization.
Kumar, Roger Sepiashvili, David Xie, Dan Professor Chen April 19, 1999 Progressive 3D Mesh Coding.
Progressive Meshes A Talk by Wallner and Wurzer for the overfull MathMeth auditorium.
CS CS 175 – Week 5 Mesh Decimation Fairness Criteria.
Irregular to Completely Regular Meshing in Computer Graphics Hugues Hoppe Microsoft Research International Meshing Roundtable 2002/09/17 Hugues Hoppe Microsoft.
PA1 Supplementary notes 1 Programming assignment You need to implement the following: 1. Display basic mesh Information Find the number of vertices, edges,
Visualization and graphics research group CIPIC Feb 18, 2003Multiresolution (ECS 289L) - Winter Progressive Meshes (SIGGRAPH ’96) By Hugues Hoppe.
Visualization 2000 Tutorial Mesh-Based Methods for Multiresolution Representations Instructor: Ken Joy Center for Image Processing and Integrated Computing.
Advanced Computer Graphics (Spring 2006) COMS 4162, Lecture 11: Quadric Error Metrics Ravi Ramamoorthi Some material.
Visualization and graphics research group CIPIC January 21, 2003Multiresolution (ECS 289L) - Winter Surface Simplification Using Quadric Error Metrics.
ECS 289L A Survey of Mesh-Based Multiresolution Representations Ken Joy Center for Image Processing and Integrated Computing Computer Science Department.
Advanced Computer Graphics (Spring 2005) COMS 4162, Lecture 10: Mesh simplification Ravi Ramamoorthi Many slides courtesy.
Visualization and graphics research group CIPIC February 13, 2003ECS289L – Multiresolution Methods – Winter Illumination Dependent Refinement of.
CSE554SimplificationSlide 1 CSE 554 Lecture 7: Simplification Fall 2014.
Modeling and representation 1 – comparative review and polygon mesh models 2.1 Introduction 2.2 Polygonal representation of three-dimensional objects 2.3.
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.
CSE554AlignmentSlide 1 CSE 554 Lecture 5: Alignment Fall 2011.
Presented By Greg Gire Advised By Zoë Wood California Polytechnic State University.
DPL10/16/2015 CS 551/651: Simplification Continued David Luebke
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.
Level of Detail: Choosing and Generating LODs David Luebke University of Virginia.
Surface Simplification Using Quadric Error Metrics Garland & Heckbert Siggraph 97.
Levels of Detail COMP 770 3/25/09. Problem Models can be very detailed Look great when close up Last week we explored one way of attacking this problem.
Semi-regular 3D mesh progressive compression and transmission based on an adaptive wavelet decomposition 21 st January 2009 Wavelet Applications in Industrial.
Progressive Simplicial Complexes Jovan Popovic Carnegie Mellon University Jovan Popovic Carnegie Mellon University Hugues Hoppe Microsoft Research Hugues.
CSE554SimplificationSlide 1 CSE 554 Lecture 7: Simplification Fall 2013.
CSE554Fairing and simplificationSlide 1 CSE 554 Lecture 6: Fairing and Simplification Fall 2012.
Simplifying Surfaces with Color and Texture using Quadric Error Metrics Michael Garland Paul S. Heckbert Carnegie Mellon University October 1998 Michael.
Polygonal Simplification Techniques
Mesh Coarsening zhenyu shu Mesh Coarsening Large meshes are commonly used in numerous application area Modern range scanning devices are used.
Advanced Computer Graphics CSE 190 [Spring 2015], Lecture 8 Ravi Ramamoorthi
CS418 Computer Graphics John C. Hart
Advanced Computer Graphics CSE 190 [Spring 2015], Lecture 7 Ravi Ramamoorthi
Surface Simplification Using Quadric Error Metrics Michael Garland Paul S. Heckbert August 1997 Michael Garland Paul S. Heckbert August 1997.
1 Multi-resolution Tetrahedral Meshes Leila De Floriani Department of Computer and Information Sciences University of Genova, Genova (Italy)
Advanced Computer Graphics CSE 190 [Spring 2015], Lecture 9 Ravi Ramamoorthi
Solid Modeling 2002 A Multi-resolution Topological Representation for Non-manifold Meshes Leila De Floriani, Paola Magillo, Enrico Puppo, Davide Sobrero.
Level of Detail: Generating LODs David Luebke University of Virginia.
Mesh Resampling Wolfgang Knoll, Reinhard Russ, Cornelia Hasil 1 Institute of Computer Graphics and Algorithms Vienna University of Technology.
Rendering Large Models (in real time)
1 Overview (Part 1) Background notions A reference framework for multiresolution meshes Classification of multiresolution meshes An introduction to LOD.
DPL3/10/2016 CS 551/651: Simplification Continued David Luebke
Advanced Computer Graphics (Spring 2013) Mesh representation, overview of mesh simplification Many slides courtesy Szymon Rusinkiewicz.
CSL 859: Advanced Computer Graphics Dept of Computer Sc. & Engg. IIT Delhi.
3D Object Representations. Introduction Line and circle and polygon algorithms- represented simple and smooth object. Some Natural object are neither.

Advanced Computer Graphics
Domain-Modeling Techniques
Hugues Hoppe - SIGGRAPH 96 - Progressive Meshes
Chapter III Modeling.
Chap 10. Geometric Level of Detail
Presentation transcript:

Polygonal Mesh – Data Structure and Processing Chiew-Lan Tai

What is a Mesh?

What is a Mesh? A Mesh is a pair (P,K), where P is a set of point positions and K is an abstract simplicial complex which contains all topological information. K is a set of subsets of : Vertices Edges Faces

What is a Mesh? Each edge must belong to at least one face, i.e. Each vertex must belong to at least one edge, i.e. An edge is a boundary edge if it only belongs to one face

What is a Mesh? A mesh is a manifold if A mesh is a polyhedron if Every edge is adjacent to one (boundary) or two faces For every vertex, its adjacent polygons form a disk (internal vertex) or a half-disk (boundary vertex) Manifold Non-manifold A mesh is a polyhedron if It is a manifold mesh and it is closed (no boundary) Every vertex belongs to a cyclically ordered set of faces (local shape is a disk)

Orientation of Faces Each face can be assigned an orientation by defining the ordering of its vertices Orientation can be clockwise or counter-clockwise. The orientation determines the normal direction of face. Usually counterclockwise order is the “front” side.

non-orientable surfaces Orientation of Faces A mesh is well oriented (orientable) if all faces can be oriented consistently (all CCW or all CW) such that each edge has two opposite orientations for its two adjacent faces Not every mesh can be well oriented. e.g. Klein bottle, Möbius strip non-orientable surfaces

Euler Formula The relation between the number of vertices, edges, and faces. where V : number of vertices E : number of edges F : number of faces

Euler Formula Tetrahedron Cube Octahedron V = 4 E = 6 F = 4 4 - 6 + 4 = 2 Cube V = 8 E = 12 F = 6 8 -12 + 6 = 2 Octahedron V = 6 E = 12 F = 8 6 -12 + 8 = 2 V = 8 E = 12 + 1 = 13 F = 6 + 1 = 7 8 - 13 + 7 = 2 V = 8 E = 12 F = 6 8 - 12 + 6 = 2

Euler Formula More general rule where V : number of vertices E : number of edges F : number of faces C : number of connected components G : number of genus (holes, handles) B : number of boundaries V = 16 E = 32 F = 16 C = 1 G = 1 B = 0 16 – 32 + 16 = 2 (1 - 1) - 0

Data Structure

Neighborhood Relations

Neighborhood Relations For a vertex All neighboring vertices All neighboring edges All neighboring faces Knowing some types of relation, we can discover other (but not necessary all) topological information e.g. if in addition to VV, VE and VF, we know neighboring vertices of a face, we can discover all neighboring edges of the face

Choice of Data Structure Criteria for choosing a particular data structure Size of mesh (# of vertices and faces) Speed and memory of computer Types of meshes (triangles only, arbitrary polygons) Redundancy of data Operations to be preformed (see next slide) Tradeoff between updating and query More redundancy of data, faster query but slower updating

Choice of Data Structure Face-based data structure Problem: different topological structure for triangles and quadrangles Edge-based data structure Winged-edge data structure Problem: traveling the neighborhood requires one case distinction Half-edge data structure Aka doubly connected edge list (DCEL)

Half-Edge Data Structure Each edge is divided into two half-edges Each half-edge has 5 references: The face on left side (assume counter-clockwise order) Previous and next half-edge in counterclockwise order The “twin” edge The starting vertex Each face has a pointer to one of its edges Each vertex has a pointer to a half edge that has this vertex as the start vertex

Half-edge data structure: example origin twin incident face next prev e3,1 v2 e3,2 f1 e1,1 v3 f2 e5,1 e4,1 v4 e4,2 f3 e7,1 e6,1

Half-Edge Data Structure

Half-Edge Data Structure Here is another view of half-edge data structure. Next pointers provide links around each face in counterclockwise (prev pointers can be used to go around in clockwise) Example: finding all vertices adjacent to vertex v. /* Assume closed mesh and using counterclockwise order */ HalfEdge he = v.he; HalfEdge curr = he; output (curr.twin.start); while (curr.twin.next != he) { curr = curr.twin.next; output (curr.twin.start); }

Progressive mesh

Progressive Mesh New representation of triangular meshes References: Hoppe, Progressive mesh, Siggraph 96 Hoppe, View-dependent Refinement of Progressive Meshes, Siggraph 97 New representation of triangular meshes Simplify meshes through sequence of edge collapse transformations Record the sequence of inverse transformations (vertex splits)

Traditional Mesh Representation mesh M V F Vertex 1 x1 y1 z1 Vertex 2 x2 y2 z2 … Face 1 2 3 Face 3 2 4 Face 4 2 7 … (appearance attributes: normals, colors, textures, ...)

Progressive Mesh Representation 150 152 500 13,546 M0 base mesh M1 M175 Mn Original mesh

Simplification: Edge Collapse Idea: apply a sequence of edge collapses: ecol(vs ,vt , vs ) ’ vt vl vr vl vr vs ’ (optimization) vs

Simplification: Edge Collapse 150 152 500 13,546 M0 M1 M175 Mn ecol0 … ecoli … ecoln-1 Mn=M ^ M0 Mi

Reconstruction: Vertex Split Invertible & lossless! attributes vspl(vs ,vl ,vr , vs ,vt ,…) ’ ’ vt ’ vl vl vr vr vs vs ’

Reconstruction: Vertex Split 150 152 500 13,546 M0 M1 M175 Mn vspl0 … vspli … vspln-1 Mn=M ^ M0 Mi

Progressive Mesh: Benefits ^ PM V F M0 lossless vspl single-resolution efficient continuous-resolution space-efficient progressive Optimization process: off-line process various metrics (could use simpler heuristics)

Application – Mesh compression 12964 faces 1000 faces

Application – Progressive Transmission Transmit the records progressively: time vspln-1 M ^ (~ progressive JPEG) vspli-1 Mi M0 vspl0 vspl1 Receiver displays: M0

Application – Selective refinement vspl0 vspl1 vspli-1 vspln-1 (e.g. view frustum)

Property – Vertex Correspondence Mf Mf-1 v1 v2 v3 v4 v5 v6 v7 Mf-2 v1 v2 v3 v4 v5 v6 Mc Mn v1 v1 M0 v2 v2 ecol v3 ecol v3 v4 ecol v5 v6 v7 v8 ecol(vs ,vt , v’s ) vl vr vt vs ’

Application – Smooth Transitions Correspondence is a surjection (onto function): Mf Mc v1 v1 v2 v2 Mf«c v3 v3 v4 V V F v5 v6 v7 ® can form a smooth visual transition: geomorph v8

Mesh Simplification

References Garland and Heckbert, Surface Simplification Using Quadric Error Metrics, Siggraph 97

Applications Create progressively coarser versions of objects (levels of detail LOD); render less detailed version for small, distant, unimportant parts of scene Inverse decimation for progressive transmission Multiresolution decomposition (for compression, editing) – decompose an original mesh M0 into a low frequency component (simplified mesh Ms) and a high frequency component (M0 – Ms)

Introduction LOD frameworks: Simplification algorithms can be discrete LOD continuous LOD view-dependent (anisotropic) LOD Simplification algorithms can be Fidelity-based – for generating accurate image Budget-based – simplify until a targeted number of polygons; for time-critical rendering

Basic Approaches Bottom-up approaches (this lecture) Start with the original fine mesh Remove elements (vertices, edges, triangles, tetrahedra) and replace with fewer elements Top-down approaches (wavelet, subdivision-based) Start with very coarse approximation of original mesh New points are inserted to generate better meshes

Bottom-up approaches Most methods operate from a priority queue of element Vertices, edges, triangles, tetrahedra are ordered in a priority queue and process one-by-one as they are de-queued The cost function, which assigns the “priority”, determines the order of processing

Local simplification operators Edge collapse (full edge and half edge collapse) – Hoppe96, Xia96, Bajaj99 Vertex-pair collapse – Shroeder97, Garland97,Popovic97 Triangle collapse – Hamann94, Gieng98 Vertex removal – Shroeder92 etc …

Operator: Edge Collapse vnew va vb Edge collapse Vertex split Full-edge collapse: vnew = optimized position Half-edge collapse: vnew = va or vb

Operator: Edge Collapse Beware triangle folding! Lead to visual artifacts, e.g., illumination and texture discontinuities. Can be detected by measuring the change in the normals of the corresponding triangles before and after an edge collapse

Operator: Edge Collapse Beware topological inconsistence! vnew va vb Edge collapse A manifold mesh may become non-manifold due to edge collapse

Operator: Vertex-pair Collapse va vnew vb Enables closing of holes and tunnels – changes topology

Operator: Triangle Collapse va vc vnew vb A triangle collapse is equivalent to two edge collapses. Triangle collapse hierarchies are shallower, but also less adaptable since this is a less fine-grained operation.

Comparisons Collapse operators: simplest to implement; well-suited for implementing geomorphing between successive levels of detail Half-edge collapse: advs: less triangles are modified than full-edge collapse; vertices are a subset of original mesh => simplifies bookkeeping

Priority Queue Methods Using the cost function (priority), prioritize all the elements in the mesh Collapse the element with the lowest cost (priority) Readjust the priorities of all the elements in the queue affected by the collapse

Error Metrics Usually incorporate some form of object-space geometric error measure Object-space error measure may be converted to a screen-space distance during runtime May also incorporate measure of attribute errors (color, normal and texture coordinate) Measure incremental error or total error

Quadric Error Metric (QEM) (Garland and Heckbert, Siggraph 97) Maybe the “best” method Fast error computation, compact storage, good visual quality Measures sum of squared vertex-plane distances

Quadric Error Metric (QEM) P1 P2 P3 s1 v s3 s2 P1 = (a b c d) representing a plane ax + by + cz + d = 0, and v = [vx vy vz 1] s1 : distance from vertex v to plane P1 squared vertex-plane distances: s2 = (p·v)2 = (vTp)(pTv) Total square distances: The quadratic form Qp is a 4x4 symmetric matrix, represented using 10 unique floating point numbers. Summing all the matrices gives Qv

Quadric Error Metric (QEM) Introduces QEM to prioritize collapses a 4x4 matrix Q is associated with each vertex Error of a vertex v is vTQv Initially, compute matrices Q for all vertices Compute the collapse cost of each edge by summing the QEM of its two vertices The error (cost) of collapsing the edge (va , vb ) v is vT(Qa+Qb)v Repeat Collapse the edge with least cost Update collapse costs of v and its neighborhood Until user requirement is achieved

Quadric Error Metric (QEM) Ellipsoids shown are level surfaces of the error quadrics, illustrate the size and orientation of error quadrics

Quadric Error Metric (QEM) 69,451 triangles 1,000 triangles 100 triangles

QEM Simplification

Mesh Fairing (Smoothing)

References Taubin, A signal processing approach to fair surface design, Siggraph 95. Kobbelt et al., Interactive multi-resolution modeling on arbitrary meshes, Siggraph 98 Desbrun et al. Implicit fairing of irregular meshes using diffusion and curvature flow, Siggraph 99

Mesh Fairing

Fairing operators for meshes Umbrella [Kobbelt98] Improved umbrella [Desbrun99] Taubin l|m [Taubin95] Curvature flow [Desbrun99] etc …

Definition: 1-ring Neighbors of a Vertex p1 pn p p2 1-ring neighbors of p, N1(p)={p1,p2,…, pn} Valence of p is n ...

General Idea Predict a vertex position from its neighbor for a vertex vi and its neighbor vj, let the weight be wij such that For vertex vi, predict Iterate through all vertices and update the positions where Is a specific normalized curvature operator,  is a damping factor

General idea Two ways to do smoothing Explicit updating – find each and update each Compute all , solve for all xi as a linear system: Let K = I – W, then in matrix form, X = - K X

Umbrella Operator Pros: simple, fast; work well for meshes with small variation in edge length and face angles Cons: for irregular connectivity meshes lead to artifacts weights only based on the connectivity, not the geometry (e.g., edge length, face area, angle between edges) vertex drifting problem, smoothing affects parametrization, not just geometry

Improved Umbrella Operator Scale-dependent umbrella operator Still has a non-zero tangential component that causes vertex drifting Discussion: no longer linear (linearized by assuming the edge lengths do not change during one smoothing round)

Curvature Flow Operator A noise removal procedure that does not depend on parametrization Vertices move along the surface normal with a speed equal to the mean curvature Geometry is smoothed without affecting the sampling rate aj xi xj bj

Curvature Flow Operator Vertices can only move along their normal no vertex drifting in parameter space

Comparisons

Extensions and Applications Volume preservation Fairing meshes with constraints Stopband filters and enhancement Multiresolution editing of arbitrary meshes Non-uniform subdivision Mesh edge detection Fairing of non-manifold models