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

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

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

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

Meshes. Mesh elements

Mesh Representations & Geometry Processing

Modeling. Simulating the Everyday World

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

: Mesh Processing. Chapter 2

Advanced Computer Graphics

Meshes and Manifolds. Computer Graphics CMU /15-662

polygon meshes polygon meshes representation

UNIVERSITY OF CALGARY. Subdivision Surfaces. Advanced Geometric Modeling Faramarz Samavati

Subdivision Curves and Surfaces: An Introduction

Curve Corner Cutting

Rendering Subdivision Surfaces Efficiently on the GPU

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

An Efficient Data Structure for Representing Trilateral/Quadrilateral Subdivision Surfaces

Subdivision overview

Subdivision Surfaces

Using Semi-Regular 4 8 Meshes for Subdivision Surfaces

Physically-Based Modeling and Animation. University of Missouri at Columbia

Geometric Modeling Based on Polygonal Meshes: OpenMesh

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

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

Subdivision Surfaces

Volume Enclosed by Example Subdivision Surfaces

Surface reconstruction Introduction. Florent Lafarge Inria Sophia Antipolis - Mediterranee

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

Subdivision curves and surfaces. Brian Curless CSE 557 Fall 2015

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

MA 323 Geometric Modelling Course Notes: Day 36 Subdivision Surfaces

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

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

Geometric Modeling in Graphics

u 0+u 2 new boundary vertex

Computergrafik. Matthias Zwicker Universität Bern Herbst 2016

Subdivision surfaces. University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell

Iterative Process to Improve Simple Adaptive Subdivision Surfaces Method with Butterfly Scheme

Subdivision Surfaces

BICUBIC UNIFORM B-SPLINE SURFACE REFINEMENT

Complexity Reduction of Catmull-Clark/Loop Subdivision Surfaces

Curves and Surfaces 2

Joe Warren, Scott Schaefer Rice University

CS354 Computer Graphics Surface Representation III. Qixing Huang March 5th 2018

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

From curves to surfaces. Parametric surfaces and solid modeling. Extrusions. Surfaces of revolution. So far have discussed spline curves in 2D

Recursive Subdivision Surfaces for Geometric Modeling

INF3320 Computer Graphics and Discrete Geometry

Triangle meshes COMP575/COMP 770

Curves, Surfaces and Recursive Subdivision

DESIGNING AND IMPLEMENTING A SURFACE MODELING SYSTEM

Technical Report. Removing polar rendering artifacts in subdivision surfaces. Ursula H. Augsdörfer, Neil A. Dodgson, Malcolm A. Sabin.

Approximating Subdivision Surfaces with Gregory Patches for Hardware Tessellation

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

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

3D Mesh Compression in Open3DGC. Khaled MAMMOU

Cross-Parameterization and Compatible Remeshing of 3D Models

DISCRETE DIFFERENTIAL GEOMETRY: AN APPLIED INTRODUCTION Keenan Crane CMU /858B Fall 2017

3D Modeling: Surfaces

Homework 1: Implicit Surfaces, Collision Detection, & Volumetric Data Structures. Loop Subdivision. Loop Subdivision. Questions/Comments?

Computergrafik. Matthias Zwicker. Herbst 2010

Joint Advanced Student School 2007 Martin Dummer

Polygon Meshes and Implicit Surfaces

Introduction to Geometry. Computer Graphics CMU /15-662

Triangle meshes. Computer Graphics CSE 167 Lecture 8

Polygon Meshes and Implicit Surfaces

Design by Subdivision

3D Object Representation. Michael Kazhdan ( /657)

Non-Uniform Recursive Doo-Sabin Surfaces (NURDSes)

Spline Surfaces, Subdivision Surfaces

Parametric description

Overview of 3D Object Representations

Hierarchical Grid Conversion

The goal is the definition of points with numbers and primitives with equations or functions. The definition of points with numbers requires a

Processing 3D Surface Data

G 2 Interpolation for Polar Surfaces

Topological Rewriting & Patch Transformations

13.472J/1.128J/2.158J/16.940J COMPUTATIONAL GEOMETRY

Mesh Repairing and Simplification. Gianpaolo Palma

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

Motivation MGB Agenda. Compression. Scalability. Scalability. Motivation. Tessellation Basics. DX11 Tessellation Pipeline

Approximate Catmull-Clark Patches. Scott Schaefer Charles Loop

1. Introduction. 2. Parametrization of General CCSSs. 3. One-Piece through Interpolation. 4. One-Piece through Boolean Operations

Subdivision Curves and Surfaces

Postprocessing of Compressed 3D Graphic Data

Interpolatory 3-Subdivision

3D Modeling techniques

Near-Optimum Adaptive Tessellation of General Catmull-Clark Subdivision Surfaces

Interactive Geometry Editor Beth Werbaneth

Introduction and Overview

Geometric modeling 1

SPLITTING THE CUBIC UNIFORM B-SPLINE CURVE

3D Modeling I. CG08b Lior Shapira Lecture 8. Based on: Thomas Funkhouser,Princeton University. Thomas Funkhouser 2000

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

Processing 3D Surface Data

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

Key 3D Modeling Terms Beginners Need To Master

RHINOCEROS AND NURBS MODELING

Honeycomb Subdivision

Local Modification of Subdivision Surfaces Based on Curved Mesh

Transcription:

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

Today s Topics Overview Mesh Acquisition Mesh Data Structures Subdivision Surfaces

Today s Topics Overview Mesh Acquisition Mesh Data Structures Subdivision Surfaces

Overview 3D polygonal mesh Representing a 2D surface embedded in 3D by using a set of polygons Why are they of interest? Simple, common representation Rendering with hardware support Output of many acquisition tools Input to many simulation/analysis tools

Overview 3D polygonal mesh

Overview 3D polygonal mesh Geometry & topology

Today s Topics Overview Mesh Acquisition Mesh Data Structures Subdivision Surfaces

Mesh Acquisition Interactive modeling Polygon editors Interactive software Scanners SketchUp Blender

Mesh Acquisition Interactive modeling Polygon editors Interactive software Scanners Laser range scanners

Mesh Acquisition Interactive modeling Polygon editors Interactive software Scanners Laser range scanners CT, MRI, etc.

Today s Topics Overview Mesh Acquisition Mesh Data Structures Desired characteristics Main data structures Subdivision Surfaces

Desired Characteristics Performance requirements Efficient traversal of topology Given a face, find its vertices Given a face, find neighboring faces Given a vertex, find faces touching it Given a vertex, find neighboring vertices Given an edge, find vertices and faces it touches Efficient usage of memory Efficient updates We need to consider Algorithms Operations

Mesh Data Structures Independent faces Vertex and face tables Adjacency lists Winged edge Half edge Simple triangle mesh

Independent Faces Each face lists vertex coordinates Redundant vertices (x 4,y 4,z 4 ) (x 3,y 3,z 3 ) f 2 f 3 f 1 (x 5,y 5,z 5 ) (x 1,y 1,z 1 ) (x 2,y 2,z 2 ) FACE TABLE f 1 f 2 f 3 (x 1,y 1,z 1 ), (x 2,y 2,z 2 ), (x 3,y 3,z 3 ) (x 2,y 2,z 2 ), (x 4,y 4,z 4 ), (x 3,y 3,z 3 ) (x 2,y 2,z 2 ), (x 5,y 5,z 5 ), (x 4,y 4,z 4 )

Vertex and Face Tables Each face lists vertex references Shared vertices No adjacency information (x 3,y 3,z 3 ) (x 4,y 4,z 4 ) f 2 f 3 f 1 (x 5,y 5,z 5 ) (x 1,y 1,z 1 ) (x 2,y 2,z 2 ) VERTEX TABLE FACE TABLE v 1 v 2 v 3 v 4 (x 1,y 1,z 1 ) (x 2,y 2,z 2 ) (x 3,y 3,z 3 ) (x 4,y 4,z 4 ) v 5 (x 5,y 5,z 5 ) f 1 f 2 f 3 (v 1,v 2,v 3 ) (v 2,v 4,v 3 ) (v 2,v 5,v 4 )

Adjacency Lists Store all vertex, edges and face adjacencies Efficient adjacency traversal Extra storage v 3 e 4 e 5 e 3 v 4 f 2 f 3 e 7 v 5 e 1 v 1 f 1 e 2 v2 e 6 v2,v3 e1,e4,e2,e5,e6 f1,f2 v5,v4,v3,v1 e6,e5,e3,e2 f3,f2,f1 v2,v4,v3 e5,e4,e3 f3,f1

Partial Adjacency Lists Can we store only some adjacency relationships and derive others? {E i } {E i } {V i } {F i } {V i } {F i }

Winged Edge ( 翼边 ) Adjacency encoded in edges All adjacencies in O(1) time A bit extra storage popular e22 e21 v2 e F2 F1 v1 e11 e12

Winged Edge ( 翼边 ) v 4 Example v 3 e 4 e 5 f 2 f 3 e 7 e 3 v 5 e 1 v 1 f 1 e 2 v2 e 6 VERTEX TABLE EDGE TABLE v 1 v 2 v 3 v 4 v 5 (x 1,y 1,z 1 ) e1 (x 2,y 2,z 2 ) e6 (x 3,y 3,z 3 ) e3 (x 4,y 4,z 4 ) e5 (x 5,y 5,z 5 ) e6 e 1 e 2 e 3 e 4 e 5 e 6 e 7 (v 1,v 3 ) (v 1,v 2 ) (v 2,v 3 ) (v 3,v 4 ) (v 2,v 4 ) (v 2,v 5 ) f 1 f 1 f 1 f 2 f 2 f 2 f 3 f 3 11 12 21 22 (v 4,v 5 ) f 3 e 2 e 1 e 2 e 1 e 3 e 5 e 4 e 2 e 1 e 5 e 3 e 6 e 2 e 5 e 4 e 3 e 1 e 7 e 4 e 7 e 6 e 3 e 6 e 4 e 5 e 7 e 7 e 6 FACE TABLE f 1 f 2 f 3 e1 e3 e5

Half-edge Instead of a single edge, 2 directed half edges For each half-edge, we store a reference to The vertex it points to Its adjacent face (a zero pointer, if it is a boundary halfedge) The next half-edge of the face or boundary (in counterclockwise direction) Its inverse (the opposite) half-edge For each face, we store a reference to One of its half-edges For each vertex, we store a reference to One of its outgoing half-edges

Half-edge

Half-edge A basic half-edge structure can be realized using the following classes struct Halfedge { HalfedgeRef next_halfedge; HalfedgeRef opposite_halfedge; FaceRef face; VertexRef to_vertex; }; struct Face { HalfedgeRef halfedge; }; struct Vertex { HalfedgeRef outgoing_halfedge; };

Half-edge Example: The following procedure enumerates all vertices that are adjacent to a given center vertex Enumerate_1_ring(VertexRef center) { HalfedgeRef h = center.outgoing_halfedge; HalfedgeRef hstop = h; do { VertexRef v = h.to_vertex; // do something with v h = h. opposite_halfedge.next_halfedge; } while ( h!= hstop ); } confused?

Simple Triangle Mesh Do not store edges at all Store adjacency in vertices and faces For each face: 3 vertices and 3 faces For each vertex: N faces v 3 NULL v 4 f 2 f 3 v 5 f 1 v2 v 1

Comparison Data structure Face Vertex Edge Adjacency Storage List of independent faces Yes - - - High Vertex and face tables Yes Yes - - Shared vertexes Adjacency lists Yes Yes Yes V-E-F High Winged/Half edge - - Yes E Edge-centered Simple triangle mesh Yes Yes - F-V High F stands for face, V stands for vertex, and E stands for edge. - indicates the adjacency is encoded in the data structure.

Summary Mesh acquisition Interactive tool scanner Mesh representation Data structure is determined by algorithms. which adjacency relationships to store depend on which operations must be efficient

Today s Topics Overview Mesh Acquisition Mesh Data Structures Subdivision Surfaces Introduction Linear subdivision an example Different subdivision schemes overview

Subdivision surfaces Coarse mesh + subdivision rule Smooth surface = limit of sequence of refinements Advantages Simple (only need subdivision rule) Local (only look at nearby vertices) Arbitrary topology (since only local)

Subdivision surfaces How do you make a surface with guaranteed continuity?

Subdivision surfaces Repeated application of Topology refinement (splitting faces) Geometry refinement (weighted averaging)

Subdivision surfaces an example Base mesh

Subdivision surfaces an example Topology refinement

Subdivision surfaces an example Geometry refinement

Subdivision surfaces an example Topology refinement

Subdivision surfaces an example Geometry refinement

Subdivision surfaces an example Limit surface

Subdivision surfaces an example Base mesh + limit surface

Today s Topics Overview Mesh Acquisition Mesh Data Structures Subdivision Surfaces Introduction Linear subdivision an example Different subdivision schemes overview

Design of subdivision rules What types of input? Quad meshes, triangle meshes, etc. How to refine topology? Simple implementations How to refine geometry? Smoothness guarantees in limit surface C, C, C... 0 1 2 ( )

An example linear subdivision Types of input Quad mesh four-sided polygon Any number of quads may touch each vertex How to refine topology? Split every quad into four at midpoints How to refine geometry? Average vertex positions This is a simple example to demonstrate how subdivision schemes work

An example linear subdivision

An example linear subdivision Topology refinement

An example linear subdivision Geometry refinement

An example linear subdivision

An example linear subdivision

An example linear subdivision What is its physical meaning?

An example linear subdivision Example Input mesh

An example linear subdivision Example Topology refinement

An example linear subdivision Example Geometry refinement

An example linear subdivision Example Topology refinement

An example linear subdivision Example Geometry refinement

An example linear subdivision Example Topology refinement

An example linear subdivision Example Geometry refinement

An example linear subdivision Example Final result

Today s Topics Overview Mesh Acquisition Mesh Data Structures Subdivision Surfaces Introduction Linear subdivision an example Different subdivision schemes overview

Subdivision schemes comparison Common subdivision schemes Loop [1] Catmull-Clark [2] Differ in: Input topology How to refine topology How to refine geometry [1] C. Loop, Smooth Subdivision Surfaces Based on Triangles, M.S. Mathematics thesis, University of Utah, 1987 [2] E. Catmull and J. Clark, Recursively generated B-spline surfaces on arbitrary topological meshes, Computer-Aided Design 10(6):350-355, 1978

Subdivision schemes comparison Loop Catmull-Clark Loop Catmull-Clark

Thanks everybody!