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

Similar documents
Lecture 3 Mesh. Dr. Shuang LIANG. School of Software Engineering Tongji University Spring 2013

Polygonal Meshes. 3D Object Representations. 3D Object Representations. 3D Polygonal Mesh. 3D Polygonal Mesh. Geometry background

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

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

Subdivision Surfaces. Course Syllabus. Course Syllabus. Modeling. Equivalence of Representations. 3D Object Representations

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

: Mesh Processing. Chapter 2

Meshes. Mesh elements

Geometry: 3D coordinates Attributes. e.g. normal, color, texture coordinate. Connectivity

Mesh Representations & Geometry Processing

Mesh Repairing and Simplification. Gianpaolo Palma

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

Mesh and Mesh Simplification

polygon meshes polygon meshes representation

Processing 3D Surface Data

Polygonal Meshes. Thomas Funkhouser Princeton University COS 526, Fall 2016

CS 468, Spring 2013 Differential Geometry for Computer Science Justin Solomon and Adrian Butscher

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

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

Processing 3D Surface Data

Advanced Computer Graphics

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

Subdivision. Outline. Key Questions. Subdivision Surfaces. Advanced Computer Graphics (Spring 2013) Video: Geri s Game (outside link)

Polygon Meshes and Implicit Surfaces

Polygon Meshes and Implicit Surfaces

Meshes and Manifolds. Computer Graphics CMU /15-662

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

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

Surface reconstruction Introduction. Florent Lafarge Inria Sophia Antipolis - Mediterranee

Adjacency Data Structures

3D Modeling: Surfaces

Triangle meshes. Computer Graphics CSE 167 Lecture 8

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

Unit 5: Motion Geometry

Vertex-Based (Lath) Representations for Three-Dimensional Objects and Meshes p.1/15

Introduction and Overview

Mesh Decimation. Mark Pauly

Saab. Kyle McDonald. Polygon Meshes

Geometric Modeling Based on Polygonal Meshes: OpenMesh

EECS490: Digital Image Processing. Lecture #23

CGS 3220 Lecture 17 Subdivision Surfaces

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

Parametric description

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

Computergrafik. Matthias Zwicker Universität Bern Herbst 2016

CS 283: Assignment 1 Geometric Modeling and Mesh Simplification

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

Processing 3D Surface Data

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

Computational Geometry

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

FACET SHIFT ALGORITHM BASED ON MINIMAL DISTANCE IN SIMPLIFICATION OF BUILDINGS WITH PARALLEL STRUCTURE

8. The triangle is rotated around point D to create a new triangle. This looks like a rigid transformation.

Motivation. Freeform Shape Representations for Efficient Geometry Processing. Operations on Geometric Objects. Functional Representations

3D Mesh Compression in Open3DGC. Khaled MAMMOU

Triangle meshes COMP575/COMP 770

Generating 3D Meshes from Range Data

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

Lecture 25 of 41. Spatial Sorting: Binary Space Partitioning Quadtrees & Octrees

Surface Simplification Using Quadric Error Metrics

Convex Hulls (3D) O Rourke, Chapter 4

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

CSE 554 Lecture 6: Fairing and Simplification

Level of Details in Computer Rendering

Spirale Reversi: Reverse decoding of the Edgebreaker encoding

Study on Delaunay Triangulation with the Islets Constraints

SCAPE: Shape Completion and Animation of People

coding of various parts showing different features, the possibility of rotation or of hiding covering parts of the object's surface to gain an insight

Curve Corner Cutting

CGS 3220 Lecture 13 Polygonal Character Modeling

A Study on View-Dependent Representation of 3-D Mesh Models Using Hierarchical Partitioning

Subdivision Curves and Surfaces: An Introduction

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

Computer Graphics. Prof. Feng Liu. Fall /14/2016

GEOMETRIC SEARCHING PART 1: POINT LOCATION

Surface Modeling. Polygon Tables. Types: Generating models: Polygon Surfaces. Polygon surfaces Curved surfaces Volumes. Interactive Procedural

Computergrafik. Matthias Zwicker. Herbst 2010

Contours & Implicit Modelling 4

Contours & Implicit Modelling 1

All the Polygons You Can Eat. Doug Rogers Developer Relations

Joint Advanced Student School 2007 Martin Dummer

Deformation Transfer for Triangle Meshes

Modeling. Simulating the Everyday World

CS354 Computer Graphics Surface Representation IV. Qixing Huang March 7th 2018

Convex Hull Generation with Quick Hull. Randy Gaul Special thanks to Stan Melax and Dirk Gregorius for contributions on this topic

Algorithms, Spring 2014, CSE, OSU Greedy algorithms II. Instructor: Anastasios Sidiropoulos

Practical Linear Algebra: A Geometry Toolbox

Example: Loop Scheme. Example: Loop Scheme. What makes a good scheme? recursive application leads to a smooth surface.

4.4 3D Shape Interpolation - changing one 3D object into another

Scanning Real World Objects without Worries 3D Reconstruction

Character Modeling COPYRIGHTED MATERIAL

Outline. Graphs. Divide and Conquer.

Meshes. CS4620/5620: Lecture 17. Announcements. Prelim next Thursday. In the evening, closed book Including material of this week.

Triangle meshes I. CS 4620 Lecture 2

Interpolating and Approximating Implicit Surfaces from Polygon Soup

CS 206 Introduction to Computer Science II

3D Physics Engine for Elastic and Deformable Bodies. Liliya Kharevych and Rafi (Mohammad) Khan Advisor: David Mount

3DS Max Tutorial Surface, Shell, Editable Mesh and Mesh Smooth.

Geometric Algorithms in Three Dimensions Tutorial. FSP Seminar, Strobl,

Lesson 01 Polygon Basics 17. Lesson 02 Modeling a Body 27. Lesson 03 Modeling a Head 63. Lesson 04 Polygon Texturing 87. Lesson 05 NURBS Basics 117

Transcription:

1 CS 532: 3D Computer Vision 12 th Set of Notes Instructor: Philippos Mordohai Webpage: www.cs.stevens.edu/~mordohai E-mail: Philippos.Mordohai@stevens.edu Office: Lieb 215

Lecture Outline Meshes Slides by: S. Rusinkiewicz, T. Liu and V. Kim (Princeton University) David M. Mount, CMSC 754: Computational Geometry lecture notes, Department of Computer Science, University of Maryland, Spring 2012 Lecture 22 2

3D Polygonal Mesh Set of polygons representing a 2D surface embedded in 3D 3

3D Polygonal Mesh 4

3D Polygon Region inside a sequence of coplanar points Points in counter-clockwise order Define normal 5

3D Polygonal Meshes Why are they of interest? Simple, common representation Rendering with hardware support Output of many acquisition tools Input to many simulation/analysis tools 6

Surface Normals 7

Curvature 8

Rigid Transformations Compare with implicit representations level sets 9

Deformations 10

Deformations 11

Smoothing 12

Sharpen 13

Low-level Operations Subdivide face Subdivide edge Collapse edge Merge vertices Remove vertex 14

Subdivide Face How should we split current triangle? 15

Subdivide Edge 16

Collapse Edge 17

Merge Vertices 18

Polygonal Mesh Representation Important properties of mesh representation Efficient traversal of topology Efficient use of memory Efficient updates 19

Possible Data Structures List of independent faces Vertex and face tables Adjacency lists Winged edge Half edge etc. 20

Independent Faces A.k.a triangle soup Each face lists vertex coordinates Redundant vertices No adjacency information 21

Vertex and Face Tables Each face lists vertex references Shared vertices Still no adjacency information 22

Adjacency Lists Store all vertex, edge and face adjacencies Efficient adjacency traversal Extra storage requirements 23

Partial Adjacency Lists Can we store only some adjacency relationships and derive others? 24

Winged Edge Adjacency encoded in edges All adjacencies in O(1) time Little extra storage (fixed records) Arbitrary polygons 25

Winged Edge 26

Half Edge Adjacency encoded in edges All adjacencies in O(1) time Little extra storage (fixed records) Arbitrary polygons Similar to winged-edge, except adjacency encoded in half-edges 27

Half Edge Each undirected edge represented by two directed half edges Unambiguously defines left and right Assume that there are no holes in faces 28

Half Edge Each vertex stores: its coordinates a pointer v.inc_edge to any directed edge that has vertex as its origin Each directed edge is associated with: a pointer to the oppositely directed edge, called its twin an origin and destination vertex two faces, one to its left and one to its right. We only store: a pointer to the origin vertex e.org (e.dest can be accessed as e.twin.org) a pointer to the face to the left of the edge e.left (we can access the face to the right from the twin edge) pointers to the next and previous directed edges in counterclockwise order about the incident face, e.next and e.prev, respectively Each face f stores a pointer to a single edge for which this face is the incident face, f.inc_edge 29

How to Load a Shape From file with vertices and triangles 30

How to Load a Shape Add vertex coordinates to list 31

How to Load a Shape Add vertex coordinates to list Add half-edges with faces 32

How to Load a Shape Add vertex coordinates to list Add half-edges with faces Inner half-edges are sufficient 33

How to Load a Shape Add vertex coordinates to list Add half-edges with faces Inner half-edges are sufficient Update vertex pointers to half-edges 34

How to Load a Shape Add vertex coordinates to list Add half-edges with faces Inner half-edges are sufficient Update vertex pointers to half-edges Half-edges: pointer to next, pointer to face Faces: pointer to one of the inner half-edges 35

How to Load a Shape Continue adding incrementally 36

Finding Adjacent Faces Check all outgoing half edges V points to a half edge HE ADD_FACE(HE) Iterate: X=HE.twin Y=X.next ADD_FACE(Y) HE:=Y 37

Collapsing an Edge Create a new vertex v Remove faces 38

Collapsing an Edge Create a new vertex v Remove faces Change twin pointers 39

Collapsing an Edge Create a new vertex v Remove faces Change twin pointers Remove edges 40

Collapsing an Edge Create a new vertex v Remove faces Change twin pointers Remove edges Change pointers from half-edges to v 1 and v 2 41

Collapsing an Edge Create a new vertex v Remove faces Change twin pointers Remove edges Change pointers from half-edges to v 1 and v 2 Remove v 1 and v 2 Pick an outgoing edge for v 42