Advanced Computer Graphics (Spring 2005) COMS 4162, Lecture 10: Mesh simplification Ravi Ramamoorthi Many slides courtesy.

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 (Fall 2010) CS 283, Lecture 7: Quadric Error Metrics Ravi Ramamoorthi
Advanced Computer Graphics (Spring 2005) COMS 4162, Lecture 14: Review / Subdivision Ravi Ramamoorthi Slides courtesy.
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.
Haptic Rendering using Simplification Comp259 Sung-Eui Yoon.
CENG 789 – Digital Geometry Processing 05- Smoothing and Remeshing
Advanced Computer Graphics (Spring 2005) COMS 4162, Lectures 18, 19: Monte Carlo Integration Ravi Ramamoorthi Acknowledgements.
Advanced Computer Graphics (Spring 2006) COMS 4162, Lecture 8: Intro to 3D objects, meshes Ravi Ramamoorthi
Tetra-Cubes: An algorithm to generate 3D isosurfaces based upon tetrahedra BERNARDO PIQUET CARNEIRO CLAUDIO T. SILVA ARIE E. KAUFMAN Department of Computer.
Visibility-Guided Simplification Eugene Zhang and Greg Turk GVU Center, College of Computing Georgia Institute of Technology.
Progressive Meshes A Talk by Wallner and Wurzer for the overfull MathMeth auditorium.
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.
CSE554SimplificationSlide 1 CSE 554 Lecture 7: Simplification Fall 2014.
CS 450: Computer Graphics REVIEW: OVERVIEW OF POLYGONS
10/14/03CS679 - Fall Copyright Univ. of Wisconsin Last Time Level of Detail.
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.
Viewpoint Entropy-driven Simplification Pascual Castelló 1, Mateu Sbert 2, Miguel Chover 1 and Miquel Feixas 2 1 Universitat Jaume I de Castelló, Spain.
Dynamic Meshing Using Adaptively Sampled Distance Fields
CSE554AlignmentSlide 1 CSE 554 Lecture 5: Alignment Fall 2011.
Presented By Greg Gire Advised By Zoë Wood California Polytechnic State University.
Week 11 - Thursday.  What did we talk about last time?  Image processing  Blurring  Edge detection  Color correction  Tone mapping  Lens flare.
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.
1 Dr. Scott Schaefer Surface Simplification. 2/32 Surface Simplification Given a closed polygon model, reduce the number of polygons and maintain appearance.
Surface Simplification Using Quadric Error Metrics Garland & Heckbert Siggraph 97.
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.
1 Polygonal Techniques 이영건. 2 Introduction This chapter –Discuss a variety of problems that are encountered within polygonal data sets The.
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.
Graphics Graphics Korea University cgvr.korea.ac.kr 1 7. Speed-up Techniques Presented by SooKyun Kim.
Advanced Computer Graphics CSE 190 [Spring 2015], Lecture 9 Ravi Ramamoorthi
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)
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.
Model Optimization Wed Nov 16th 2016 Garrett Morrison.
CENG 789 – Digital Geometry Processing 04- Mesh Data Structures
Advanced Computer Graphics
Advanced Computer Graphics
CS Computer Graphics II
CS475 3D Game Development Level Of Detail Nodes (LOD)
Meshes.
Chapter III Modeling.
Chang-Hun Kim Department of Computer Science Korea University
Chap 10. Geometric Level of Detail
Presentation transcript:

Advanced Computer Graphics (Spring 2005) COMS 4162, Lecture 10: Mesh simplification Ravi Ramamoorthi Many slides courtesy Szymon Rusinkiewicz

To Do Assignment 2, Due Mar 10.  Start reading and working on it now. Some parts you can do now. Some parts after next week This lecture starts discussing early parts of assignment, followed by a discussion of mesh simplification

Outline  Basic assignment overview  Detailed discussion of mesh simplification  Progressive meshes  Quadric error metrics

Assignment Overview  Implement complete system for mesh simplification  Plus maybe progressive meshes Possibly challenging assignment: start very early and proceed in incremental fashion  Choice of data structure for meshes is the key (read the assignment)  This involves fairly recent work. No one answer  Think about the best way of proceeding, use creativity

Mesh Viewer (2.2) Deliberately, no skeleton code for assignment  Think about and implement full system from scratch First step: Mesh viewer  Read meshes (in simple OFF file format), view them  Can reuse code from 4160 (if stuck, try hw1 in 4160)  Shading: must average face normals per vertex (this may give you a start in implementing a mesh data structure)  Debugging modes for shading (color each triangle separately with an individual color) Software Design  Define mesh class with display method etc.  Use C++ STL data structures where appropriate (see ass)

Mesh Connectivity (2.3) Build up mesh connectivity data structure  Input is vertices and faces from input file Goal is to do edge collapses in constant time  No iteration over whole mesh  Most of mesh unchanged  Important questions for your data structure to answer: “What vertices neighbor my current vertex?” and “What faces neighbor my current vertex”  Think about updating your data structure. Collapsing an edge may require more than just the edge itself. You must update every vertex or face that has changed

Mesh Decimation (edge collapse)  Can you handle this correctly and efficiently? Debugging examples in testpatch and plane (do these first)

Mesh Decimation (edge collapse)  Can you handle this correctly and efficiently? Debugging examples in testpatch and plane (do these first)

Mesh Decimation (edge collapse 2.4) v0 v1 X  Create new vertex v (based on appropriate rule)  Find all faces/edges neighbor vertex v1 (such as A)  Change them to use v instead of v1. Do the same for v0  Depend on data structure, you need to fix all faces, edges v A A

Mesh Data Structure Hints  Simplest (I think): Faces store constituent vertices [indexed face set as in OFF], vertices store adjacent faces (how do you create vertex-face adjacency?)  To simplify, first create new vertex v. Adjacent faces are those adjacent to v0 or v1  For each of those faces, update to point to v instead of v0 or v1

Mesh Decimation (edge collapse 2.4) v0 v1 X  Find faces neighboring edge v0-v1 (such as X)  Remove from mesh  This may involve updating face/vertex adjacency relationships etc.  E.g. what is adjacency for v (faces adjacent to vertex?)  Are other vertices affected in terms of adjacent faces?  Worry about triangle fins v A A

Mesh Data Structure Hints  With indexed face set plus vertex to face adjacency, removing a face should just work (remember to delete face from vertex adjacency lists)  Think about fins  In general, winged edge, half-edge may be (slightly) more efficient, but also harder to implement  Ultimately, your choice and work out the details  Good luck!!

Implementation  Tricky  When you remove something, need to update appropriately  Work out on paper first (e.g. indexed face set plus adjacent faces for each vertex)  Depends on choice of data structure (pick easy to do)  Start with simple debugging cases (make sure not just that it looks right, but all adjacencies remain correct)

Outline  Basic assignment overview  Detailed discussion of mesh simplification  Progressive meshes  Quadric error metrics

Successive Edge Collapses  We have discussed one edge collapse, how to do that  In practice, sequence of edge collapses applied  Order etc. based on some metric (later in lecture)  So, we gradually reduce complexity of model  Progressive meshes is opposite: gradually increase complexity

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

Progressive Meshes (2.6)  Write edge collapses to file  Read in file and invert order  Key idea is vertex-split (opposite of edge-collapse)  Include some control to make model coarser/finer  E.g. Hoppe geomorph demo

GeoMorph

Vertex splits  Can you handle this correctly and efficiently? Debugging examples in testpatch and plane (do these first)

Implementation  Tricky (it is extra credit in many cases)  What info do you need to add something?  Work out on paper first (e.g. indexed face set plus adjacent faces for each vertex)  Start with simple debugging cases (make sure not just that it looks right, but all adjacencies remain correct)

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

Outline  Basic assignment overview  Detailed discussion of mesh simplification  Progressive meshes  Quadric error metrics

Quadric Error Metrics  Garland & Heckbert, SIGGRAPH 97  Greedy decimation algorithm  Pair collapse (allow edge + non-edge collapses)  Quadric error metrics:  Evaluate potential collapses  Determine optimal new vertex locations

Quadric Error Metrics  Based on point-to-plane distance  Better quality than point-to-point a b c dadadada dbdbdbdb dcdcdcdc

Quadric Error Metrics  Sum of squared distances from vertex to planes:

Quadric Error Metrics  Common mathematical trick: quadratic form = symmetric matrix Q multiplied twice by a vector

Using Quadrics  Approximate error of edge collapses  Each vertex v has associated quadric Q  Error of collapsing v 1 and v 2 to v’ is v’ T Q 1 v’+v’ T Q 2 v’  Quadric for new vertex v’ is Q’=Q 1 +Q 2

Using Quadrics  Find optimal location v’ after collapse:

Using Quadrics  Find optimal location v’ after collapse:

Results Original 1k tris 100 tris Quadrics

Quadric Visualization  Ellipsoids: iso-error surfaces  Smaller ellipsoid = greater error for a given motion  Lower error for motion parallel to surface  Lower error in flat regions than at corners  Elongated in “cylindrical” regions

Results Original 250 tris, edge collapses only 250 tris Quadrics

Summary  First, implement basic mesh simplification on one edge  Helps to have right data structure  Tricky since needs to be efficient and properly update  Then, implement quadric error metrics  Tricky; we will spend most of another lecture on this  Put edge collapses in priority queue  Problem is that when you do one, you have to update all the neighbors as well (just as for standard edge collapse)  And re-insert in queue (use appropriate data structure)