CSE554Fairing and simplificationSlide 1 CSE 554 Lecture 6: Fairing and Simplification Fall 2012.

Slides:



Advertisements
Similar presentations
Lecture 19: Parallel Algorithms
Advertisements

Vector Calculus Mengxia Zhu Fall Objective Review vector arithmetic Distinguish points and vectors Relate geometric concepts to their algebraic.
Efficient access to TIN Regular square grid TIN Efficient access to TIN Let q := (x, y) be a point. We want to estimate an elevation at a point q: 1. should.
November 12, 2013Computer Vision Lecture 12: Texture 1Signature Another popular method of representing shape is called the signature. In order to compute.
Advanced Computer Graphics (Fall 2010) CS 283, Lecture 7: Quadric Error Metrics Ravi Ramamoorthi
General Physics (PHYS101)
Informationsteknologi Wednesday, November 7, 2007Computer Graphics - Class 51 Today’s class Geometric objects and transformations.
Computational Geometry & Collision detection
1 Chapter 4 Interpolation and Approximation Lagrange Interpolation The basic interpolation problem can be posed in one of two ways: The basic interpolation.
Image Segmentation and Active Contour
CSE554ContouringSlide 1 CSE 554 Lecture 4: Contouring Fall 2013.
Computing 3D Geometry Directly From Range Images Sarah F. Frisken and Ronald N. Perry Mitsubishi Electric Research Laboratories.
Siggraph Course Mesh Parameterization: Theory and Practice Barycentric Mappings.
5/1/2000Deepak Bandyopadhyay / UNC Chapel Hill 1 Extended Quadric Error Functions for Surface Simplification Deepak Bandyopadhyay COMP 258 F2000 Project.
Geometry (Many slides adapted from Octavia Camps and Amitabh Varshney)
CENG 789 – Digital Geometry Processing 05- Smoothing and Remeshing
CSCE 590E Spring 2007 Basic Math By Jijun Tang. Applied Trigonometry Trigonometric functions  Defined using right triangle  x y h.
Mesh Parameterization: Theory and Practice Barycentric Mappings.
Computer Graphics using OpenGL, 3 rd Edition F. S. Hill, Jr. and S. Kelley Chapter Vector Tools for Graphics.
1 Numerical geometry of non-rigid shapes Non-Euclidean Embedding Non-Euclidean Embedding Lecture 6 © Alexander & Michael Bronstein tosca.cs.technion.ac.il/book.
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.
Vectors.
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.
Scalar and Vector Fields
CSE554SimplificationSlide 1 CSE 554 Lecture 7: Simplification Fall 2014.
October 8, 2013Computer Vision Lecture 11: The Hough Transform 1 Fitting Curve Models to Edges Most contours can be well described by combining several.
Computer Graphics: Programming, Problem Solving, and Visual Communication Steve Cunningham California State University Stanislaus and Grinnell College.
CS 450: Computer Graphics REVIEW: OVERVIEW OF POLYGONS
CSE554AlignmentSlide 1 CSE 554 Lecture 8: Alignment Fall 2014.
CSE554Laplacian DeformationSlide 1 CSE 554 Lecture 8: Laplacian Deformation Fall 2012.
Graphics CSE 581 – Interactive Computer Graphics Mathematics for Computer Graphics CSE 581 – Roger Crawfis (slides developed from Korea University slides)
06 - Boundary Models Overview Edge Tracking Active Contours Conclusion.
Dual/Primal Mesh Optimization for Polygonized Implicit Surfaces
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.
October 14, 2014Computer Vision Lecture 11: Image Segmentation I 1Contours How should we represent contours? A good contour representation should meet.
CSE554AlignmentSlide 1 CSE 554 Lecture 5: Alignment Fall 2011.
Course 12 Calibration. 1.Introduction In theoretic discussions, we have assumed: Camera is located at the origin of coordinate system of scene.
Introduction Image geometry studies rotation, translation, scaling, distortion, etc. Image topology studies, e.g., (i) the number of occurrences.
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.
CSE554AlignmentSlide 1 CSE 554 Lecture 8: Alignment Fall 2013.
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
Geometric Modeling using Polygonal Meshes Lecture 3: Discrete Differential Geometry and its Application to Mesh Processing Office: South B-C Global.
CSE554ContouringSlide 1 CSE 554 Lecture 4: Contouring Fall 2015.
CS418 Computer Graphics John C. Hart
CSE554FairingSlide 1 CSE 554 Lecture 6: Fairing Fall 2015.
Advanced Computer Graphics CSE 190 [Spring 2015], Lecture 9 Ravi Ramamoorthi
1 Graphics CSCI 343, Fall 2015 Lecture 9 Geometric Objects.
CSCE 552 Fall 2012 Math By Jijun Tang. Applied Trigonometry Trigonometric functions  Defined using right triangle  x y h.
Mesh Resampling Wolfgang Knoll, Reinhard Russ, Cornelia Hasil 1 Institute of Computer Graphics and Algorithms Vienna University of Technology.
Basic Theory (for curve 01). 1.1 Points and Vectors  Real life methods for constructing curves and surfaces often start with points and vectors, which.
1 Chapter 4 Interpolation and Approximation Lagrange Interpolation The basic interpolation problem can be posed in one of two ways: The basic interpolation.
Computer Graphics Mathematical Fundamentals Lecture 10 Taqdees A. Siddiqi
Linear Algebra Review Tuesday, September 7, 2010.
Computer Graphics Lecture 11 2D Transformations I Taqdees A. Siddiqi
3D Ojbects: Transformations and Modeling. Matrix Operations Matrices have dimensions: Vectors can be thought of as matrices: v=[2,3,4,1] is a 1x4 matrix.
Vectors Chapter 2.  Scalars and vectors : A scalar quantity: is a quantity that has magnitude only. Mass, time, speed, distance, pressure, Temperature.
CSE 554 Lecture 8: Alignment
Outline Addition and subtraction of vectors Vector decomposition
User-Guided Simplification
CSE 554 Lecture 9: Laplacian Deformation
Joshua Barczak CMSC 435 UMBC
Fitting Curve Models to Edges
Domain-Modeling Techniques
Craig Schroeder October 26, 2004
Math review - scalars, vectors, and matrices
Presentation transcript:

CSE554Fairing and simplificationSlide 1 CSE 554 Lecture 6: Fairing and Simplification Fall 2012

CSE554Fairing and simplificationSlide 2 Review Iso-contours in grayscale images and volumes – Piece-wise linear representations Polylines (2D) and meshes (3D) – Primal and dual methods Marching Squares (2D) and Cubes (3D) Dual Contouring (2D,3D) – Acceleration using trees Quadtree (2D), Octree (3D) Interval trees

CSE554Fairing and simplificationSlide 3 Geometry Processing Fairing (smoothing) – Relocating vertices to achieve a smoother appearance Simplification – Reducing vertex count Deformation – Relocating vertices guided by user interaction or to fit onto a target

CSE554Fairing and simplificationSlide 4 Same representation Different meaning: – Point: a fixed location (relative to {0,0} or {0,0,0}) – Vector: a direction and magnitude No location (any location is possible) Points and Vectors x Y 1 2 2

CSE554Fairing and simplificationSlide 5 Subtraction – Result is a vector Addition with a vector – Result is a point Can points add? – Not yet… Point Operations

CSE554Fairing and simplificationSlide 6 Addition/Subtraction – Result is a vector Scaling by a scalar – Result is a vector Magnitude – Result is a scalar A unit vector: To make a unit vector (normalization): Vector Operations

CSE554Fairing and simplificationSlide 7 Adding Points Affine combinations – Weighted addition of points where all weights sum to 1 – Result is another point Same as adding scaled vectors to a point

CSE554Fairing and simplificationSlide 8 Adding Points Affine combinations: examples – Mid-point of two points – Linear interpolation of two points – Centroid of multiple points

CSE554Fairing and simplificationSlide 9 Geometry Processing Fairing (smoothing) – Relocating vertices to achieve a smoother appearance Simplification – Reducing vertex count

CSE554Fairing and simplificationSlide 10 Fairing (2D) Reducing “bumpiness” by changing the vertex locations

CSE554Fairing and simplificationSlide 11 Fairing (2D) What is a bump? – A vertex far from the mid-point of its two neighbors A big bumpA small bump

CSE554Fairing and simplificationSlide 12 Fairing (2D) Fairing by mid-point averaging – Moving each vertex towards the mid-point of its two neighbors Using linear interpolation : some value between 0 and 1 – Controls how far p’ moves away from p – Iterative fairing At each iteration, update all vertices using locations in the previous iteration A close to 1 will create oscillation – Typically

CSE554Fairing and simplificationSlide 13 Fairing (2D) Drawback – The initial shape is shrunk! 100 iterations200 iterations400 iterations

CSE554Fairing and simplificationSlide 14 Fairing (2D) Non-shrinking mid-point averaging [Taubin 1995] – Alternate between two kinds of iterations with different Odd iterations: (positive) – Shrinking the shape Even iterations: (negative) – : typically 0.1 – Expanding the shape

CSE554Fairing and simplificationSlide 15 Fairing (2D) The initial shape is no longer shrunk – The result converges with increasing iterations 100 iterations200 iterations400 iterations

CSE554Fairing and simplificationSlide 16 Fairing (3D) Fairing by centroid averaging – Moving each vertex towards the centroid of its edge-adjacent neighbors (called the 1-ring neighbors) Linear interpolation – Iterative, non-shrinking fairing Alternate between shrinking and expanding – Same choices of as in 2D Each iteration updates all vertices using locations in the previous iteration centroid

CSE554Fairing and simplificationSlide 17 Fairing (3D) Example: fairing iso-surface of a binary volume

CSE554Fairing and simplificationSlide 18 Fairing Implementation Tips – At each iteration, keep two copies of locations of all vertices Store the smoothed location of each vertex in another list separate from the current locations – Building an adjacency table storing the neighbors of each vertex would be helpful, but not necessary Initialize the centroid as {0,0,0} at each vertex, and its neighbor count as 0. For each triangle, add the coordinates of each vertex to the centroids stored at the other two vertices and increment their neighbor count. – The neighbor count is twice the actual # of edge neighbors For each vertex, divide the centroid by its neighbor count.

CSE554Fairing and simplificationSlide 19 Dot product (in both 2D and 3D) – Result is a scalar – In coordinates (simple!) 2D: 3D: Matrix product between a row and a column vector More Vector Operations

CSE554Fairing and simplificationSlide 20 Uses of dot products – Angle between vectors: Orthogonal: – Projected length of onto : More Vector Operations h

CSE554Fairing and simplificationSlide 21 Cross product (only in 3D) – Result is another 3D vector Direction: Normal to the plane where both vectors lie (right-hand rule) Magnitude: – In coordinates: More Vector Operations

CSE554Fairing and simplificationSlide 22 More Vector Operations Uses of cross products – Getting the normal vector of the plane E.g., the normal of a triangle formed by – Computing area of the triangle formed by Testing if vectors are parallel:

CSE554Fairing and simplificationSlide 23 More Vector Operations Dot ProductCross Product Distributive? Commutative? Associative? (Sign change!)

CSE554Fairing and simplificationSlide 24 Geometry Processing Fairing (smoothing) – Relocating vertices to achieve a smoother appearance Simplification – Reducing vertex count

CSE554Fairing and simplificationSlide 25 Simplification (2D) Representing the shape with fewer vertices (and edges) 200 vertices50 vertices

CSE554Fairing and simplificationSlide 26 Simplification (2D) If I want to replace two vertices with one, where should it be?

CSE554Fairing and simplificationSlide 27 Simplification (2D) If I want to replace two vertices with one, where should it be? – Shortest distances to the supporting lines of involved edges After replacement:

CSE554Fairing and simplificationSlide 28 Simplification (2D) Distance to a line – Line represented as a point q on the line, and a perpendicular unit vector (the normal) n To get n: take a vector {x,y} along the line, n is {-y,x} followed by normalization – Distance from any point p to the line: Projection of vector (p-q) onto n – This distance has a sign “Above” or “under” of the line We will use the distance squared Line

CSE554Fairing and simplificationSlide 29 Simplification (2D) Closed point to multiple lines – Sum of squared distances from p to all lines (Quadratic Error Metric, QEM) Input lines: – We want to find the p with the minimum QEM Since QEM is a convex quadratic function of p, the minimizing p is where the derivative of QEM is zero, which is a linear equation

CSE554Fairing and simplificationSlide 30 Simplification (2D) Minimizing QEM – Writing QEM in matrix form 2x2 matrix1x2 column vectorScalar [Eq. 1] Matrix (dot) product Row vector Matrix transpose

CSE554Fairing and simplificationSlide 31 Simplification (2D) Minimizing QEM – Solving the zero-derivative equation: – A linear system with 2 equations and 2 unknowns (p x,p y ) Using Gaussian elimination, or matrix inversion: [Eq. 2]

CSE554Fairing and simplificationSlide 32 Simplification (2D) What vertices to merge first? – Pick the ones that lie on “flat” regions, or whose replacing vertex introduces least QEM error. 

CSE554Fairing and simplificationSlide 33 Simplification (2D) The algorithm – Step 1: For each edge, compute the best vertex location to replace that edge, and the QEM at that location. Store that location (called minimizer) and its QEM with the edge.

CSE554Fairing and simplificationSlide 34 Simplification (2D) The algorithm – Step 1: For each edge, compute the best vertex location to replace that edge, and the QEM at that location. Store that location (called minimizer) and its QEM with the edge. – Step 2: Pick the edge with the lowest QEM and collapse it to its minimizer. Update the minimizers and QEMs of the re-connected edges.

CSE554Fairing and simplificationSlide 35 Simplification (2D) The algorithm – Step 1: For each edge, compute the best vertex location to replace that edge, and the QEM at that location. Store that location (called minimizer) and its QEM with the edge. – Step 2: Pick the edge with the lowest QEM and collapse it to its minimizer. Update the minimizers and QEMs of the re-connected edges.

CSE554Fairing and simplificationSlide 36 Simplification (2D) The algorithm – Step 1: For each edge, compute the best vertex location to replace that edge, and the QEM at that location. Store that location (called minimizer) and its QEM with the edge. – Step 2: Pick the edge with the lowest QEM and collapse it to its minimizer. Update the minimizers and QEMs of the re-connected edges. – Step 3: Repeat step 2, until a desired number of vertices is left.

CSE554Fairing and simplificationSlide 37 Simplification (2D) The algorithm – Step 1: For each edge, compute the best vertex location to replace that edge, and the QEM at that location. Store that location (called minimizer) and its QEM with the edge. – Step 2: Pick the edge with the lowest QEM and collapse it to its minimizer. Update the minimizers and QEMs of the re-connected edges. – Step 3: Repeat step 2, until a desired number of vertices is left.

CSE554Fairing and simplificationSlide 38 Simplification (2D) Step 1: Computing minimizer and QEM on an edge – Consider supporting lines of this edge and adjacent edges – Compute and store at the edge: The minimizing location p (Eq. 2) QEM (substitute p into Eq. 1) – Used for edge selection in Step 2 QEM coefficients (a, b, c) – Used for fast update in Step 2 Stored at the edge:

CSE554Fairing and simplificationSlide 39 Simplification (2D) Step 2: Collapsing an edge – Remove the edge and its vertices – Re-connect two neighbor edges to the minimizer of the removed edge – For each re-connected edge: Increment its coefficients by that of the removed edge – The coefficients are additive! Re-compute its minimizer and QEM Collapse : new minimizer locations computed from the updated coefficients

CSE554Fairing and simplificationSlide 40 Simplification (3D) The algorithm is similar to 2D – Replace two edge-adjacent vertices by one vertex Placing new vertices closest to supporting planes of adjacent triangles – Prioritize collapses based on QEM

CSE554Fairing and simplificationSlide 41 Simplification (3D) Distance to a plane (similar to the line case) – Plane represented as a point q on the plane, and a unit normal vector n For a triangle: n is the cross-product of two edge vectors – Distance from any point p to the plane: Projection of vector (p-q) onto n – This distance has a sign “above” or “below” the plane We use its square

CSE554Fairing and simplificationSlide 42 Simplification (3D) Closest point to multiple planes – Input planes: – QEM (same as in 2D) In matrix form: – Find p that minimizes QEM: A linear system with 3 equations and 3 unknowns (p x,p y,p z ) 3x3 matrix 1x3 column vector Scalar

CSE554Fairing and simplificationSlide 43 Simplification (3D) Step 1: Computing minimizer and QEM on an edge – Consider supporting planes of all triangles adjacent to the edge – Compute and store at the edge: The minimizing location p QEM[p] QEM coefficients (a, b, c) The supporting planes for all shaded triangles should be considered when computing the minimizer of the middle edge.

CSE554Fairing and simplificationSlide 44 Simplification (3D) Step 2: Collapsing an edge – Remove the edge with least QEM – Re-connect neighbor triangles and edges to the minimizer of the removed edge Remove “degenerate” triangles Remove “duplicate” edges – For each re-connected edge: Increment its coefficients by that of the removed edge Re-compute its minimizer and QEM Collapse Degenerate triangles after collapse Duplicate edges after collapse

CSE554Fairing and simplificationSlide 45 Simplification (3D) Example: 5600 vertices500 vertices

CSE554Fairing and simplificationSlide 46 Further Readings Fairing: – “A signal processing approach to fair surface design”, by G. Taubin (1995) No-shrinking centroid-averaging Google citations > 1000 Simplification: – “Surface simplification using quadric error metrics”, by M. Garland and P. Heckbert (1997) Edge-collapse simplification Google citations > 2000