Advanced Computer Graphics

Slides:



Advertisements
Similar presentations
 Over-all: Very good idea to use more than one source. Good motivation (use of graphics). Good use of simplified, loosely defined -- but intuitive --
Advertisements

Surface Simplification using Quadric Error Metrics Guowei Wu.
Surface Simplification Using Quadric Error Metrics Speaker: Fengwei Zhang September
Advanced Computer Graphics CSE 190 [Spring 2015], Lecture 10 Ravi Ramamoorthi
Developer’s Survey of Polygonal Simplification Algorithms Based on David Luebke’s IEEE CG&A survey paper.
MATHIEU GAUTHIER PIERRE POULIN LIGUM, DEPT. I.R.O. UNIVERSITÉ DE MONTRÉAL GRAPHICS INTERFACE 2009 Preserving Sharp Edges in Geometry Images.
5/1/2000Deepak Bandyopadhyay / UNC Chapel Hill 1 Extended Quadric Error Functions for Surface Simplification Deepak Bandyopadhyay COMP 258 F2000 Project.
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.

Advanced Computer Graphics (Spring 2006) COMS 4162, Lecture 8: Intro to 3D objects, meshes Ravi Ramamoorthi
Advanced Computer Graphics (Fall 2010) CS 283, Lecture 4: 3D Objects and Meshes Ravi Ramamoorthi
Polygonal Mesh – Data Structure and Smoothing
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.
Advanced Computer Graphics (Spring 2005) COMS 4162, Lecture 10: Mesh simplification Ravi Ramamoorthi Many slides courtesy.
CSE554SimplificationSlide 1 CSE 554 Lecture 7: Simplification Fall 2014.
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.
Presented By Greg Gire Advised By Zoë Wood California Polytechnic State University.
10/02/2001CS 638, Fall 2001 Today Level of Detail Overview Decimation Algorithms LOD Switching.
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.
Triangular Mesh Decimation
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.
CSE554SimplificationSlide 1 CSE 554 Lecture 7: Simplification Fall 2013.
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.
Advanced Computer Graphics CSE 190 [Spring 2015], Lecture 9 Ravi Ramamoorthi
Greg Humphreys CS445: Intro Graphics University of Virginia, Fall 2003 Subdivision Surfaces Greg Humphreys University of Virginia CS 445, Fall 2003.
Solid Modeling 2002 A Multi-resolution Topological Representation for Non-manifold Meshes Leila De Floriani, Paola Magillo, Enrico Puppo, Davide Sobrero.
ALGORITHMS FOR POLYGON REDUCTION Author: Ing. Roman Schulz FIT VUT, 2008.
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)
COMPUTER GRAPHICS CS 482 – FALL 2015 SEPTEMBER 10, 2015 TRIANGLE MESHES 3D MESHES MESH OPERATIONS.
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.
Decimation of Triangle Meshes Paper by W.J.Schroeder et.al Presented by Guangfeng Ji.
A Multiphase Approach to Efficient Surface Simplification Michael Garland Eric Shaffer University of Illinois at Urbana–Champaign Michael Garland Eric.
Model Optimization Wed Nov 16th 2016 Garrett Morrison.

CENG 789 – Digital Geometry Processing 04- Mesh Data Structures
POLYGON MESH Advance Computer Graphics
Decimation Of Triangle Meshes
Advanced Computer Graphics
CS Computer Graphics II
Haim Kaplan and Uri Zwick
CS679 - Fall Copyright Univ. of Wisconsin
CS475 3D Game Development Level Of Detail Nodes (LOD)
Today Runtime LOD Spatial Data Structures Overview
Parallel Model Simplification of Very Large Polygonal Meshes
Craig Schroeder October 26, 2004
Jarek Rossignac GVU Center Georgia Institute of Technology
Meshes.
Chapter III Modeling.
Lecture 13 Clipping & Scan Conversion
Visibility Preserving Terrain Simplification An Experimental Study
Chap 10. Geometric Level of Detail
Run-Time LOD Run-time algorithms may use static or dynamic LOD models:
Subdivision Surfaces 고려대학교 컴퓨터 그래픽스 연구실 cgvr.korea.ac.kr.
Presentation transcript:

Advanced Computer Graphics CSE 163 [Spring 2017], Lecture 7 Ravi Ramamoorthi http://www.cs.ucsd.edu/~ravir

To Do Assignment 1, Due Apr 28 Starting Geometry Processing Any last minute issues or difficulties? Starting Geometry Processing Assignment 2 due May 19 This lecture starts discussing relevant content Please START EARLY. Can do most after this week Contact us for difficulties, help finding partners etc.

Motivation A polygon mesh is a collection of triangles We want to do operations on these triangles E.g. walk across the mesh for simplification Display for rendering Computational geometry Best representations (mesh data structures)? Compactness Generality Simplicity for computations Efficiency

Mesh Data Structures Desirable Characteristics 1 Generality – from most general to least Polygon soup Only triangles 2-manifold: ≤ 2 triangles per edge Orientable: consistent CW / CCW winding Closed: no boundary Compact storage

Mesh Data Structures Desirable characteristics 2 Efficient support for operations: Given face, find its vertices Given vertex, find faces touching it Given face, find neighboring faces Given vertex, find neighboring vertices Given edge, find vertices and faces it touches These are adjacency operations important in mesh simplification (homework), many other applications

Outline Independent faces Indexed face set Adjacency lists Winged-edge Half-edge Overview of mesh decimation and simplification

Independent Faces Faces list vertex coordinates Redundant vertices No topology information F0 F1 F2 Face Table F0: (x0,y0,z0), (x1,y1,z1), (x2,y2,z2) F1: (x3,y3,z3), (x4,y4,z4), (x5,y5,z5) F2: (x6,y6,z6), (x7,y7,z7), (x8,y8,z8)

Indexed Face Set Faces list vertex references – “shared vertices” Commonly used (e.g. OFF file format itself) Augmented versions simple for mesh processing F0 F1 F2 v0 v1 v3 v4 v2 Vertex Table v0: (x0,y0,z0) v1: (x1,y1,z1) v2: (x2,y2,z2) v3: (x3,y3,z3) v4: (x4,y4,z4) Face Table F0: 0, 1, 2 F1: 1, 4, 2 F2: 1, 3, 4 Note CCW ordering

Indexed Face Set Storage efficiency? Which operations supported in O(1) time? F0 F1 F2 v0 v1 v3 v4 v2 Vertex Table v0: (x0,y0,z0) v1: (x1,y1,z1) v2: (x2,y2,z2) v3: (x3,y3,z3) v4: (x4,y4,z4) Face Table F0: 0, 1, 2 F1: 1, 4, 2 F2: 1, 3, 4 Note CCW ordering

Efficient Algorithm Design Can sometimes design algorithms to compensate for operations not supported by data structures Example: per-vertex normals Average normal of faces touching each vertex With indexed face set, vertex  face is O(n) Naive algorithm for all vertices: O(n2) Can you think of an O(n) algorithm?

Efficient Algorithm Design Can sometimes design algorithms to compensate for operations not supported by data structures Example: per-vertex normals Average normal of faces touching each vertex With indexed face set, vertex  face is O(n) Naive algorithm for all vertices: O(n2) Can you think of an O(n) algorithm? Useful to augment with vertex  face adjacency For all vertices, find adjacent faces as well Can be implemented while simply looping over faces

Outline Independent faces Indexed face set Adjacency lists Winged-edge Half-edge Overview of mesh decimation and simplification

Full Adjacency Lists Store all vertex, face, and edge adjacencies Edge Adjacency Table e0: v0, v1; F0,ø; ø,e2,e1,ø e1: v1,v2; F0,F1; e5,e0,e2,e6 … F0 F1 F2 v0 v1 v3 v4 v2 e2 e0 e3 e4 e6 e1 e5 Face Adjacency Table F0: v0,v1,v2; F1,ø,ø; e0,e2,e1 F1: v1,v4,v2; ø,F0,F2; e6,e1,e5 F2: v1,v3,v4; ø,F1,ø; e4,e5,e3 Vertex Adjacency Table v0: v1,v2; F0; e0,e2 v1: v3,v4,v2,v0; F2,F1,F0; e3,e5,e1,e0 …

Full adjacency: Issues Garland and Heckbert claim they do this Easy to find stuff Issue is storage And updating everything once you do something like an edge collapse for mesh simplification I recommend you implement something simpler (like indexed face set plus vertex to face adjacency)

Partial Adjacency Lists Store some adjacencies, use to derive others Many possibilities… Edge Adjacency Table e0: v0, v1; F0,ø; ø,e2,e1,ø e1: v1,v2; F0,F1; e5,e0,e2,e6 … F0 F1 F2 v0 v1 v3 v4 v2 e2 e0 e3 e4 e6 e1 e5 Face Adjacency Table F0: v0,v1,v2; F1,ø,ø; e0,e2,e1 F1: v1,v4,v2; ø,F0,F2; e6,e1,e5 F2: v1,v3,v4; ø,F1,ø; e4,e5,e3 Vertex Adjacency Table v0: v1,v2; F0; e0,e2 v1: v3,v4,v2,v0; F2,F1,F0; e3,e5,e1,e0 …

Partial Adjacency Lists Some combinations only make sense for closed manifolds Edge Adjacency Table e0: v0, v1; F0,ø; ø,e2,e1,ø e1: v1,v2; F0,F1; e5,e0,e2,e6 … F0 F1 F2 v0 v1 v3 v4 v2 e2 e0 e3 e4 e6 e1 e5 Face Adjacency Table F0: v0,v1,v2; F1,ø,ø; e0,e2,e1 F1: v1,v4,v2; ø,F0,F2; e6,e1,e5 F2: v1,v3,v4; ø,F1,ø; e4,e5,e3 Vertex Adjacency Table v0: v1,v2; F0; e0,e2 v1: v3,v4,v2,v0; F2,F1,F0; e3,e5,e1,e0 …

Outline Independent faces Indexed face set Adjacency lists Winged-edge Half-edge Overview of mesh decimation and simplification

Winged, Half Edge Representations Idea is to associate information with edges Compact Storage Many operations efficient Allow one to walk around mesh Usually general for arbitrary polygons (not triangles) But implementations can be complex with special cases relative to simple indexed face set++ or partial adjacency table

Winged Edge Most data stored at edges Vertices, faces point to one edge each Edge Adjacency Table e0: v0, v1; F0, ø; ø,e2,e1, ø e1: v1,v2; F0,F1; e5,e0,e2,e6 … F0 F1 F2 v0 v1 v3 v4 v2 e2 e0 e3 e4 e6 e1 e5 Face Adjacency Table F0: v0,v1,v2; F1, ø, ø; e0,e2,e1 F1: v1,v4,v2; ø,F0,F2; e6,e1,e5 F2: v1,v3,v4; ø,F1, ø; e4,e5,e3 Vertex Adjacency Table v0: v1,v2; F0; e0,e2 v1: v3,v4,v2,v0; F2,F1,F0; e3,e5,e1,e0 …

Winged Edge Each edge stores 2 vertices, 2 faces, 4 edges – fixed size Enough information to completely “walk around” faces or vertices Think how to implement Walking around vertex Finding neighborhood of face Other ops for simplification eforw,left eforw,right vend Fleft Fright vbegin eback,left eback,right

Half Edge Instead of single edge, 2 directed “half edges” Makes some operations more efficient Walk around face very easily (each face need only store one pointer) henext Fleft heinv vbegin

Outline Independent faces Indexed face set Adjacency lists Winged-edge Half-edge Overview of mesh decimation and simplification

Mesh Decimation Triangles: 41,855 27,970 20,922 12,939 8,385 4,766 Division, Viewpoint, Cohen

Mesh Decimation Reduce number of polygons Desirable properties Less storage Faster rendering Simpler manipulation Desirable properties Generality Efficiency Produces “good” approximation Michelangelo’s St. Matthew Original model: ~400M polygons

Primitive Operations Simplify model a bit at a time by removing a few faces Repeated to simplify whole mesh Types of operations Vertex cluster Vertex remove Edge collapse (main operation used in assignment)

Vertex Cluster Method Properties Merge vertices based on proximity Triangles with repeated vertices can collapse to edges or points Properties General and robust Can be unattractive if results in topology change

Vertex Remove Method Properties Remove vertex and adjacent faces Fill hole with new triangles (reduction of 2) Properties Requires manifold surface, preserves topology Typically more attractive Filling hole well not always easy

Edge Collapse Method Properties Merge two edge vertices to one Delete degenerate triangles Properties Special case of vertex cluster Allows smooth transition Can change topology Mention what we need to compute - vertex position and attributes

Mesh Decimation/Simplification Typical: greedy algorithm Measure error of possible “simple” operations (primarily edge collapses) Place operations in queue according to error Perform operations in queue successively (depending on how much you want to simplify model) After each operation, re-evaluate error metrics

Geometric Error Metrics Motivation Promote accurate 3D shape preservation Preserve screen-space silhouettes and pixel coverage Types Vertex-Vertex Distance Vertex-Plane Distance Point-Surface Distance Surface-Surface Distance

Vertex-Vertex Distance E = max(|v3−v1|, |v3−v2|) Appropriate during topology changes Rossignac and Borrel 93 Luebke and Erikson 97 Loose for topology-preserving collapses v3 v2 v1

Vertex-Plane Distance Store set of planes with each vertex Error based on distance from vertex to planes When vertices are merged, merge sets Ronfard and Rossignac 96 Store plane sets, compute max distance Error Quadrics – Garland and Heckbert 97 Store quadric form, compute sum of squared distances dc da db b c a

Point-Surface Distance For each original vertex, find closest point on simplified surface Compute sum of squared distances

Surface-Surface Distance Compute or approximate maximum distance between input and simplified surfaces Tolerance Volumes - Guéziec 96 Simplification Envelopes - Cohen/Varshney 96 Hausdorff Distance - Klein 96 Mapping Distance - Bajaj/Schikore 96, Cohen et al. 97

Geometric Error Observations Vertex-vertex and vertex-plane distance Fast Low error in practice, but not guaranteed by metric Surface-surface distance Required for guaranteed error bounds Edge swap vertex-vertex ≠ surface-surface

Mesh Simplification Advanced Considerations Type of input mesh? Modifies topology? Continuous LOD? Speed vs. quality?

View-Dependent Simplification Simplify dynamically according to viewpoint Visibility Silhouettes Lighting Hoppe

Appearance Preserving 488 tris 975 tris 1,951 tris 3,905 tris 7,809 tris Caltech & Stanford Graphics Labs and Jonathan Cohen

Summary Many mesh data structures Mesh simplification Compact storage vs ease, efficiency of use How fast and easy are key operations Mesh simplification Reduce size of mesh in efficient quality-preserving way Based on edge collapses mainly Choose appropriate mesh data structure Efficient to update, edge-collapses are local Fairly modern ideas (last 15-20 years) Think about some of it yourself, see papers given out We will cover simplification, quadric metrics next