Spring 2017 CSCI 621: Digital Geometry Processing 1.2 Surface Representation & Data Structures Hao Li http://cs621.hao-li.com 1
Administrative • No class next Tuesday, due to Siggraph deadline • Introduction to first programming exercise on Jan 24th Siggraph Deadline 2013@ILM! 2
Last Time Geometry Processing Reconstruction Rendering Capture Analysis Reproduction Manipulation 3
Geometric Representations point based quad mesh triangle mesh implicit surfaces / particles volumetric tetrahedrons 4
Geometric Representations point based quad mesh triangle mesh Surface Representations implicit surfaces / particles volumetric tetrahedrons 5
High Resolution 6
Large scenes 7
Outline • Parametric Approximations • Polygonal Meshes • Data Structures 8
Parametric Representation Surface is the range of a function f : Ω ⊂ IR 2 → IR 3 , S Ω = f ( Ω ) 2D example: A Circle f : [0 , 2 π ] → IR 2 � ⇥ r cos( t ) r f ( t ) = r sin( t ) 9
Parametric Representation Surface is the range of a function f : Ω ⊂ IR 2 → IR 3 , S Ω = f ( Ω ) 2D example: Island coast line f : [0 , 2 π ] → IR 2 � ⇥ ? r cos( t ) f ( t ) = r sin( t ) ? 10
Piecewise Approximation Surface is the range of a function f : Ω ⊂ IR 2 → IR 3 , S Ω = f ( Ω ) 2D example: Island coast line f : [0 , 2 π ] → IR 2 � ⇥ ? r cos( t ) f ( t ) = r sin( t ) ? 11
Polynomial Approximation Polynomials are computable functions p p c i t i = � � f ( t ) = c i φ i ( t ) ˜ i =0 i =0 Taylor expansion up to degree p p 1 i ! g ( i ) (0) h i + O ⇤ h p +1 ⇥ � g ( h ) = i =0 Error for approximation by polynomial f g f ( t i ) = g ( t i ) , 0 ≤ t 0 < · · · < t p ≤ h p 1 � h ( p +1) ⇥ ⇤ ( p + 1)! max f ( p +1) | f ( t ) − g ( t ) | ≤ ( t − t i ) = O i =0 12
Polynomial Approximation Approximation error is O ( h p +1 ) Improve approximation quality by • increasing … higher order polynomials p • decreasing … shorter / more segments h Issues f ( p +1) ( t ) max • smoothness of the target data ( ) t • smoothness condition between segments 13
Polygonal Meshes Polygonal meshes are a good compromise • Piecewise linear approximation → error is O ( h 2 ) 3 6 12 24 25% 6.5% 1.7% 0.4% 14
Polygonal Meshes Polygonal meshes are a good compromise O ( h 2 ) • Piecewise linear approximation → error is • Error inversely proportional to #faces 15
Polygonal Meshes Polygonal meshes are a good compromise O ( h 2 ) • Piecewise linear approximation → error is • Error inversely proportional to #faces • Arbitrary topology surfaces 16
Polygonal Meshes Polygonal meshes are a good compromise O ( h 2 ) • Piecewise linear approximation → error is • Error inversely proportional to #faces • Arbitrary topology surfaces • Piecewise smooth surfaces 17
Polygonal Meshes Polygonal meshes are a good compromise O ( h 2 ) • Piecewise linear approximation → error is • Error inversely proportional to #faces • Arbitrary topology surfaces • Piecewise smooth surfaces • Adaptive sampling 18
Polygonal Meshes Polygonal meshes are a good compromise O ( h 2 ) • Piecewise linear approximation → error is • Error inversely proportional to #faces • Arbitrary topology surfaces • Piecewise smooth surfaces • Adaptive sampling • Efficient GPU-based rendering/processing 19
Outline • Parametric Approximations • Polygonal Meshes • Data Structures 20
Graph Definitions B A • Graph { V , E } E F D C I H G K J 21
Graph Definitions B A • Graph { V , E } E F • Vertices V = {A,B,C,…,K} D C I H G K J 22
Graph Definitions B A • Graph { V , E } E F • Vertices V = {A,B,C,…,K} D C • Edges E = {(AB),(AE),(CD),…} I H G K J 23
Graph Definitions B A • Graph { V , E } E F • Vertices V = {A,B,C,…,K} D C • Edges E = {(AB),(AE),(CD),…} I H • Faces F = {(ABE),(EBF),(EFIH),…} G K J 24
Graph Definitions B A Vertex degree or valence: E F D number of incident edges C • deg(A) = 4 I H • deg(E) = 5 G K J 25
Connectivity Connected: B Path of edges connecting A every two vertices E F D C I H G K J 26
Connectivity Connected: Path of edges connecting B A every two vertices E F D Subgraph: C Graph { V’,E’ } is a subgraph of graph I H { V,E } if V’ is a subset of V and E’ is a G subset of E incident on V’ . K J 27
Connectivity Connected: Path of edges connecting B A every two vertices E F D Subgraph: C Graph { V’,E’ } is a subgraph of graph I H { V,E } if V’ is a subset of V and E’ is a G subset of E incident on V’ . K J 28
Connectivity Connected: Path of edges connecting B A every two vertices E F D Subgraph: C Graph { V’,E’ } is a subgraph of graph I H { V,E } if V’ is a subset of V and E’ is a G subset of E incident on V’ . K J Connected Components: Maximally connected subgraph 29
Connectivity Connected: Path of edges connecting B A every two vertices E F D Subgraph: C Graph { V’,E’ } is a subgraph of graph I H { V,E } if V’ is a subset of V and E’ is a G subset of E incident on V’ . K J Connected Components: Maximally connected subgraph 30
Graph Embedding R d Embedding: Graph is embedded in , if R d each vertex is assigned a position in . R 2 R 3 Embedding in Embedding in 31
Graph Embedding R d Embedding: Graph is embedded in , if R d each vertex is assigned a position in . Embedding in R 3 32
Planar Graph Planar Graph Graph whose vertices and edges can be R 2 embedded in such that its edges do not intersect Straight Line Planar Graph Plane Graph Plane Graph 33
Triangulation Triangulation: Straight line plane graph where every B A face is a triangle E F D Why? C • simple homogenous data structure I H • efficient rendering G • simplifies algorithms • by definition, triangle is planar K J • any polygon can be triangulated 34
Mesh • Mesh : straight-line graph R 3 embedded in • Boundary edge: adjacent to exactly 1 face • Regular edge: adjacent to exactly 2 faces • Singular edge: adjacent to more than 2 faces • Closed mesh: mesh with no boundary edges 35
Polygon Q = ( V, E ) A geometric graph R d d ≥ 2 V = { p 0 , p 1 , . . . , p n − 1 } with in , E = { ( p 0 , p 1 ) . . . ( p n − 2 , p n − 1 ) } and is called a polygon A polygon is called • flat, if all edges are on a plane • closed, if p 0 = p n − 1 36
While digital artists call it Wireframe, … 37
Polygonal Mesh A set of finite number of closed polygons if: Q i M • Intersection of inner polygonal areas is empty p ∈ P • Intersection of 2 polygons from is either empty, a point M or an edge e ∈ E • Every edge belongs to at least one polygon e ∈ E • The set of all edges which belong only to one polygon are called edges of the polygonal mesh and are either empty or form a single closed polygon 38
Polygonal Mesh Notation M = ( { v i } , { e j } , { f k } ) v i ∈ R 3 geometry 39
Polygonal Mesh Notation M = ( { v i } , { e j } , { f k } ) v i ∈ R 3 geometry e i , f i ⊂ R 3 topology 40
Global Topology: Genus • Genus: Maximal number of closed simple cutting curves that do not disconnect the graph into multiple components. • Or half the maximal number of closed paths that do no disconnect the mesh • Informally, the number of holes or handles Genus 0 Genus 1 Genus 2 Genus 3 41
Euler Poincaré Formula • For a closed polygonal mesh of genus , the relation g of the number of vertices, of edges, and of faces V E F is given by Euler’s formula: V − E + F = 2(1 − g ) • The term is called the Euler characteristic 2(1 − g ) χ 42
Euler Poincaré Formula V − E + F = 2(1 − g ) 4 − 6 + 4 = 2(1 − 0) 43
Euler Poincaré Formula V − E + F = 2(1 − g ) 16 − 32 + 16 = 2(1 − 1) 44
Average Valence of Closed Triangle Mesh Theorem: Average vertex degree in a closed manifold triangle mesh is ~6 Proof: Each face has 3 edges and each edge is counted twice: 3F = 2E by Euler’s formula: V+F-E = V+2E/3-E = 2-2g Thus E = 3(V-2+2g) So average degree = 2E/V = 6(V-2+2g)/V ~6 for large V 45
Euler Consequences Triangle mesh statistics • F ≈ 2 V E ≈ 3 V • • Average valence = 6 Quad mesh statistics • F ≈ V • E ≈ 2 V • Average valence = 4 46
Euler Characteristic Sphere Torus Moebius Strip Klein Bottle χ = 2 χ = 0 χ = 0 χ = 0 47
How many pentagons? 48
How many pentagons? Any closed surface of genus 0 consisting only of hexagons and pentagons and where every vertex has valence 3 must have exactly 12 pentagons 49
Two-Manifold Surfaces Local neighborhoods are disk-shaped f ( D ✏ [ u, v ]) = D � [ f ( u, v )] Guarantees meaningful neighbor enumeration • required by most algorithms Non-manifold Examples: 50
Outline • Parametric Approximations • Polygonal Meshes • Data Structures 51
Recommend
More recommend