ar1 twf030 lecture2.1
TRANSCRIPT
11
Geometry & Topology in Computer Geometry & Design
Dr.ir. Pirouz Nourian
Assistant Professor of Design InformaticsDepartment of Architectural Engineering & TechnologyFaculty of Architecture and Built Environment
22
A Line is something that looks like a line & works like a line!
“If it looks like a duck, swims like a duck, and quacks like a duck, then it probably is a duck.”
Image: DUCK: GETTY Images; ILLUSTRATION: MARTIN O'NEILL, from http://www.nature.com/nature/journal/v484/n7395/full/484451a.html?message-global=remove
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
33
What you see on the screen is only a rasterized image of the object!
What you see is not what you get!
Image: René Magritte, ceci n'est pas une pipe (this is not a pipe)
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
44
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
55
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
66
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
77
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Escher’s Balcony
88
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
ℝ ℝ𝟐 ℝ𝟑
1D 2D 3D
http://paulbourke.net/geometry/hyperspace/
99
Cartesian Product of Sets ℝ𝟏 = ℝ ℝ𝟐 = ℝ × ℝ ℝ𝟑= ℝ × ℝ × ℝ
1D 2D 3D
http://paulbourke.net/geometry/hyperspace/
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
𝐴 = {𝑎, 𝑏, 𝑐}
𝐵 = {1,2}
𝐴 × 𝐵 = { 𝑎, 1 , 𝑎, 2 , 𝑏, 1 , 𝑏, 2 , 𝑐, 1 , (𝑐, 2)}
1010
ℝ𝟏 = ℝ ℝ𝟐 = ℝ × ℝ ℝ𝟑= ℝ × ℝ × ℝ
1D 2D 3D
http://paulbourke.net/geometry/hyperspace/
𝐴 = {𝑎, 𝑏, 𝑐}
𝐵 = {1,2}
𝐴 × 𝐵 = { 𝑎, 1 , 𝑎, 2 , 𝑏, 1 , 𝑏, 2 , 𝑐, 1 , (𝑐, 2)}
Cartesian Product of Sets
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
http://ndp.jct.ac.il/tutorials/discrete/node28.html
1111
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
1D 2D 3D
Curved Spaces
1212
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
1D 2D 3D
1313
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
0D: Point (the space therein everywhere resembles a 0-dimensional Euclidean Space)
1D: Curve (the space therein everywhere resembles a 1-dimensional Euclidean Space)
2D: Surface (the space therein everywhere resembles a 2-dimensional Euclidean Space)
3D: Solid (the space therein everywhere resembles a 3-dimensional Euclidean Space)
1414
On terminology
• Geometry: Point (0D), Curve(1D), Surface(2D), Solid (3D) [free-form]
• Geometry: Point (0D), Line(1D), Polygon(2D), Polyhedron (3D) [piecewise linear]
• Topology: Vertex(0D), Edge(1D), Face(2D), Body(3D)
• Graph Theory: Object, Link, (and n-Cliques)
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
1515
On terminology
n-D features
Graph Theory Topology Geometry
0D
Object Vertex Point
1D
Link Edge Line (Curve)
2D
Cycle* Face Polygon (Surface)
3D
Clique* Body Polyhedron (Solid)
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Configraphics: Graph Theoretical Methods of Design and Analysis of Spatial Configurations, Nourian, P, 2016
1616
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
• 1D: Curves (t parameter)
• 2D: Surfaces (u & v parameters)
• 3D: B-Reps (each face is a surface)
NURBS ObjectsNon Uniform Rational Basis Splines are used for accurately modeling free-form geometries
1717
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
NURBS RepresentationNon Uniform Rational Basis Splines (NURBS) are used for modeling free-form geometries accurately
Image courtesy of http://www.boatdesign.netImage courtesy of Wikimedia
• An elegant mathematical description of a physical drafting aid as a (set of)
parametric equation(s).
1818
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Parametric Curves in GeneralHow do numeric weights correspond to physical weights?
1919
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Splines in Computer GraphicsAll types of curves can be modeled as splines
•
2020
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Bezier interpolation
2121
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
NURBS equationsAll from a summary by Markus Altmann: http://web.cs.wpi.edu/~matt/courses/cs563/talks/nurbs.html
2222
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
NURBS RepresentationNon Uniform Rational Basis Splines (NURBS) are used for modeling free-form geometries accurately
• An elegant mathematical description of a physical drafting aid as a (set of)
parametric equation(s).
• offer one common mathematical form for both, standard analytical shapes
(e.g. conics) and free form shapes;
• provide the flexibility to design a large variety of shapes;
• can be evaluated reasonably fast by numerically stable and accurate
algorithms;
• are invariant under affine as well as perspective transformations;
• are generalizations of non-rational B-splines and non-rational and rational
Bezier curves and surfaces.
2323
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
NURBS SurfacesRectangular Patches
2424
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Parametric Space
Images courtesy of David Rutten, from Rhinoscript 101
2525
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Parametric Locations:
2626
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Bilbao Guggenheim Museum
Bus stop near Sebastiaansbrug Delft
2727
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
1D Curvature
𝐾 =1
𝑅One over the radius of the osculation (kissing) circle
Why did people [for such a long time] believe that the Earth was flat?
2828
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
2D Curvature: Gaussian
Images courtesy of Raja Issa, Essential Mathematics for Computational Design
𝐾𝐺 = 𝐾𝑚𝑖𝑛𝐾𝑚𝑎𝑥
2929
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
2D Curvature: Gaussian 𝐾𝐺 = 𝐾𝑚𝑖𝑛𝐾𝑚𝑎𝑥
3030
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Blending Surfaces & Continuity
Images courtesy of Raja Issa, Essential Mathematics for Computational Design
3131
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
2D Curvature: Mean
𝐾𝐺 =𝐾𝑚𝑖𝑛 +𝐾𝑚𝑎𝑥
2
Anish Kapoor, Marsyas, 2002, installation view, Tate Modern
https://en.wikipedia.org/wiki/Mean_curvature
3232
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Boundary Representations
3333
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Boundary Representations
• 0D: Point
• 1D: Curve (represented by boundary Points)
• 2D: Surface (represented by boundary Curves)
• 3D: Solid (represented by boundary Surfaces)
3434
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Imagine the Boundary of Manifolds
• 0D: Point (the space therein everywhere resembles a 0-dimensional Euclidean Space)
• 1D: Curve (the space therein everywhere resembles a 1-dimensional Euclidean Space)
• 2D: Surface (the space therein everywhere resembles a 2-dimensional Euclidean Space)
• 3D: Solid (the space therein everywhere resembles a 3-dimensional Euclidean Space)
3535
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Boundary Representations
• 0D: Point
• 1D: Curve (represented by boundary Points)
• 2D: Surface (represented by boundary Curves)
• 3D: Solid (represented by boundary Surfaces)
• Free-Form Parametric surfaces
• Piecewise Linear: Polygon Meshes
3636
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
The simplex cell is defined as the locus of points defined by linear interpolations of the corner
vertices with barycentric coordinates denoted by 𝛼𝑖, as follows:
𝑣0, 𝑣1, … , 𝑣𝑘 ∈ ℝ𝑛
𝐶 = {𝛼0𝑣0 + 𝛼1𝑣1 +⋯ .+𝛼𝑘𝑣𝑘|𝛼𝑖 ≥ 0, 0 ≤ 𝑖 ≤ 𝑘,
𝑖
𝛼𝑖 = 1}
• 0-simplex: Point
• 1-simplex: Line
• 2-simplex: Triangle
• 3-simplex: Tetrahedron
3737
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
https://sites.google.com/site/dengwirda/jigsaw
https://www.researchgate.net/publication/287398529_An_E
fficient_Approach_for_Solving_Mesh_Optimization_Proble
ms_Using_Newton%27s_Method/figures?lo=1
3838
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
• Example:
• Important note:
the geometry of faces is not stored; only rendered when needed!
What you see on the screen is not necessarily what you store!
Polygon Mesh RepresentationA light-weight model composed of points and a set of topological relations among them.
Points >Vertices Lines > Edges Polygons > Faces Mesh
T1: {0,4,3}T2:{0,1,4}Q1:{1,2,5,4}
3939
• The geometry of a Mesh can be represented by its points (known as [geometrical] vertices
in Rhino), i.e. a ‘list’ of 3D points in ℝ3
• The topology of a Mesh can be represented based on its [topological] vertices, referring to a
‘set’ of 3D points in ℝ3, there are multiple ways to describe how these vertices are spatially
related (connected or adjacent) to one another and also to edges and faces of the Mesh
• Same topology and different geometries:
MeshMesh Geometry versus Mesh Topology
T1: {0,4,3}T2:{0,1,4}Q1:{1,2,5,4}T1
T2Q1
T1
T2Q1
0
3
1
45
2 0
3
1
4 5
2
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
4040
Triangulated MeshesSome preliminary definitions: fan, star, strip
A triangle strip=:ABCDEF
ABC, CBD, CDE, and EDF
A
B
C
D
E
F
A Closed Triangle Fan or a ‘star’=:ABCDEF
AB
C
D
E
F
ABC, ACD, ADE, and AEF
A Triangle Fan=: ABCDE
AB
CD
E
ABC, ACD, and ADE
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
4141
Mesh BoundarySome preliminary definitions: free* vertices, free* edges
• If an edge has less than two faces adjacent to it then it is considered free;• If a vertex is part of such an edge it is considered as free too.
* In Rhinocommon free vertices/edges are referred to as naked.
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
4242
Mesh Border denoted as 𝝏 (𝒑𝒓𝒐𝒏𝒐𝒖𝒏𝒄𝒆𝒅 𝒂𝒔 ′𝒏𝒂𝒃𝒍𝒂′𝒐𝒓 ′𝒅𝒆𝒍′)
• A 1D border is the set of connected edges incident to only one face of a 2-manifold, i.e. composed of free edges. We can conclude that:
• If every vertex has a closed fan, or there is no edge of valence (number of neighbors) less than 2, the given manifold has no border. Example: a box!
non-manifold border manifold borderno [1D] border
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
4343
Images courtesy of Dr. Ching-Kuang Shene from Michigan Technological University
• if a Mesh is supposed to be a 2D manifold then it should meet these criteria:
1. each edge is incident to only one or two faces; and
2. the faces incident to a vertex form a closed or an open fan.
Non manifold Mesh examples: (note why!)
Manifold MeshA 2-manifold [everywhere] locally resembles a flat surface
• if a Mesh is supposed to be orientable then, it should be possible to find
‘compatible’ orientations for any two adjacent faces; in which, for each pair of
adjacent faces, the common edge of the two faces has opposite orders.
• Example: Möbius band is a 2D manifold Mesh that is non-printable.
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
4444
Image Source: http://prateekvjoshi.com/2014/11/16/homomorphism-vs homeomorphism/
Mesh Topology: Homeomorphismclay models that are all topologically equal!
Images courtesy of Dr. Ching-Kuang Shene from Michigan Technological University
Two 2-manifold Meshes A and B are homeomorphic if their surfaces can be transformed to one another by topological transformations (bending, twisting, stretching, scaling, etc.) without cutting and gluing.
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
4545
Mesh Topology: HomeomorphismEuler-Poincare Characteristic: key to homeomorphismOnly for 2D boundary representations*
Images courtesy of Dr. Ching-Kuang Shene from Michigan Technological University
𝜒 𝑀 = 𝑉 − 𝐸 + 𝐹 = 2 1 − 𝑔 − 𝜕
• 𝛿 is the number of [connected] borders• 𝑔 is the number of “genera” (pl. of genus) or holes• Irrespective of tessellation!
𝜒 𝑀 = 𝑉 − 𝐸 + 𝐹 = 2 1 − 2 − 0 = −2
* For 3D BReps the Euler characteristic equation will take the form of V-E+F-B
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
4646
Mesh Topology: HomeomorphismEuler-Poincare Characteristic: key to homeomorphism
• Irrespective of tessellation!
𝜒 𝑀 = 𝑉 − 𝐸 + 𝐹 = −2 𝑓𝑜𝑟 𝑑𝑜𝑢𝑏𝑙𝑒 𝑡𝑜𝑟𝑖(ℎ𝑜𝑚𝑒𝑜𝑚𝑜𝑟𝑝ℎ𝑖𝑐 𝑡𝑜 𝑠𝑜𝑙𝑖𝑑𝑠 𝑤𝑖𝑡ℎ 2 ℎ𝑜𝑙𝑒𝑠)
𝜒 𝑀 = 𝑉 − 𝐸 + 𝐹 = 0 𝑓𝑜𝑟 𝑡𝑜𝑟𝑖 (ℎ𝑜𝑚𝑒𝑜𝑚𝑜𝑟𝑝ℎ𝑖𝑐 𝑡𝑜 𝑠𝑜𝑙𝑖𝑑𝑠 𝑤𝑖𝑡ℎ 1 ℎ𝑜𝑙𝑒)
𝜒 𝑀 = 𝑉 − 𝐸 + 𝐹 = 1 𝑓𝑜𝑟 𝑑𝑖𝑠𝑘𝑠 (ℎ𝑜𝑚𝑒𝑜𝑚𝑜𝑟𝑝ℎ𝑖𝑐 𝑡𝑜 𝑠𝑢𝑟𝑓𝑎𝑐𝑒𝑠)
𝜒 𝑀 = 𝑉 − 𝐸 + 𝐹 = 2 𝑓𝑜𝑟 𝑠𝑝ℎ𝑒𝑟𝑒𝑠 (ℎ𝑜𝑚𝑒𝑜𝑚𝑜𝑟𝑝ℎ𝑖𝑐 𝑡𝑜 𝑠𝑜𝑙𝑖𝑑𝑠 𝑤𝑖𝑡ℎ𝑜𝑢𝑡 ℎ𝑜𝑙𝑒𝑠)
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
4747
Mesh Topology: HomeomorphismEuler-Poincare Characteristic: key to homeomorphism
• Irrespective of tessellation!
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
4848
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Valid Mesh (often expected to be a 2–Manifold Surface)
4949
Mesh Topology: HomeomorphismEuler-Poincare Characteristic: key to homeomorphism
• N-Manifold/Non-Manifold: Each point of an n-dimensional manifold has a neighborhood that is homeomorphic to the Euclidean space of dimension n
• Riddle: The above definition implies that for mapping some local geographic features 2D
maps are fine. What about the whole globe? That is not homoeomorphic to a rectangular
surface! How do we do it then?
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
5050
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Poincare Dualitya pairing between k-dimensional features and dual features of dimension n-k in ℝ𝑛
PRIMAL DUAL
0D vertex (e.g. as a point) 1D edge
1D edge (e.g. as a line segment) 0D vertex
PRIMAL DUAL
0D vertex (e.g. a point) 2D face
1D edge (e.g. a line segment) 1D edge
2D face (e.g. a triangle or a pixel) 0D vertex
PRIMAL DUAL
0D vertex (e.g. a point) 3D body
1D edge (e.g. a line segment) 2D face
2D face (e.g. a triangle or a pixel) 1D edge
3D body (e.g. a tetrahedron or a voxel) 0D vertex
ℝ
ℝ3
ℝ2
Configraphics: Graph Theoretical Methods of Design and Analysis of Spatial Configurations, Nourian, P, 2016
5151
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Poincare Dualitya pairing between k-dimensional features and dual features of dimension n-k in ℝ𝑛
PRIMAL DUAL
0D vertex (e.g. as a point) 1D edge
1D edge (e.g. as a line segment) 0D vertexℝ
A hypothetical street network (a), a Junction-to-Junction adjacency graph (b) versus a Street-to-Street adjacency graph (c), both ‘undirected’, after Batty (Batty, 2004): red dots represent graph nodes, and blue arcs represent graph links.
Batty, M., 2004. A New Theory of Space Syntax. CASA Working Paper Series, March.
5252
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Poincare Dualitya pairing between k-dimensional features and dual features of dimension n-k in ℝ𝑛
PRIMAL DUAL
0D vertex (e.g. a point) 2D face
1D edge (e.g. a line segment) 1D edge
2D face (e.g. a triangle or a pixel) 0D vertex
ℝ2
A Voronoi tessellation of 2D space and its dual that is a Delaunay triangulation
5353
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Poincare Dualitya pairing between k-dimensional features and dual features of dimension n-k in ℝ𝑛
PRIMAL DUAL
0D vertex (e.g. a point) 3D body
1D edge (e.g. a line segment) 2D face
2D face (e.g. a triangle or a pixel) 1D edge
3D body (e.g. a tetrahedron or a voxel) 0D vertex
ℝ3
representing adjacencies between 3D cells or bodies via their dual vertices (Lee, 2001)
5454
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Mesh Topological Structure
• Mesh Topological Data Models:
Face-Vertex: e.g. 𝐹0 = {𝑉0, 𝑉5, 𝑉4} & 𝑉0 ∈ 𝐹0, 𝐹1, 𝐹12, 𝐹15, 𝐹7
Images courtesy of David Dorfman, from Wikipedia
Face-Vertex (as implemented in Rhinoceros)
5555
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Vertex-Vertex: e.g. 𝑉0~{𝑉1, 𝑉4, 𝑉3}
Face-Vertex: e.g. 𝐹0 = 𝑉0, 𝑉5, 𝑉4 , 𝑉0 ∈ 𝐹0, 𝐹1, 𝐹12, 𝐹15, 𝐹7
Winged-Edge: e.g. 𝐹0 = 𝐸4, 𝐸8, 𝐸9 , 𝐸0 = 𝑉0, 𝑉1 , 𝐸0~ 𝐹1, 𝐹12 , 𝐸0~ 𝐸9, 𝐸23, 𝐸10, 𝐸20
Half-Edge: each half edge has a twin edge in opposite direction, a previous and a next
Mesh Topological Structures
Image courtesy of David Dorfman, from Wikipedia
What is explicitly stored as topology of a Mesh: E.g. Face-Vertex (as implemented in Rhinoceros)
http://doc.cgal.org/latest/HalfedgeDS/index.html
5656
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Mesh Topological Structure
• Mesh Topological Data Models:
Face-Vertex Example:
http://4.rhino3d.com/5/rhinocommon/html/AllMembers_T_Rhino_Geometry_Collections_MeshTopologyVertexList.htm
Face-Vertex (as implemented in Rhinoceros)
Name Description
ConnectedFaces Gets all faces that are connected to a given vertex.
ConnectedTopologyVertices(Int32) Gets all topological vertices that are connected to a given vertex.
ConnectedTopologyVertices(Int32, Boolean) Gets all topological vertices that are connected to a given vertex.
The MeshTopologyVertexList type exposes the following members.
Half-Edge: Half-Edge Mesh Data Structure, example implementation by Daniel Piker: http://www.grasshopper3d.com/group/plankton
5757
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Mesh Geometry
• Polygon vs Face
• Triangulate
• Quadrangulate
5858
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Mesh Intersections
• Boolean operation on Meshes:
1. 𝐴 ∪ 𝐵: Boolean Union
2. 𝐴 − 𝐵: Boolean Difference
3. 𝐴 ∩ 𝐵: Boolean Intersection
5959
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Normal Vectors of a Mesh
• Topological Vertices versus Geometrical Points
• Joining Mesh objects: What is a Mesh box?
• Welding Meshes: how does it work?
• Face Normal versus Vertex Normal
Where do they come from and what do they represent?
6060
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
How to Compute Mesh Normals?
00,
00 ),(vvuuv
p
u
pvun
1
( ) ( )
0
( )( )N
x i next i i next i
i
N y y z z
1
( ) ( )
0
( )( )N
z i next i i next i
i
N x x y y
1
( ) ( )
0
( )( )N
y i next i i next i
i
N z z x x
Martin Newell at Utah (remember the teapot?)
Why?
6161
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Repairing/Reconstructing Geometry
• Example: Coons’ Patch
• Code it and get bonus points!
Image courtesy of CVG Lab
6262
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Mesh Smoothing
for (int k = 0; k <= L - 1; k++) {List<Point3d> SmoothV = new List<Point3d>();for (int i = 0; i <= M.Vertices.Count - 1; i++) {
List<Point3d> Neighbours = Neighbors(M, i);Point3d NVertex = new Point3d(0, 0, 0);foreach (point3d neighbor in Neighbours ) {
NVertex = NVertex + neighbor;}NVertex = (1 / Ngh.Count) * NVertex;SmoothV.Add(NVertex);
}M.Vertices.Clear();M.Vertices.AddVertices(SmoothV);A = M;
}
6363
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Mesh Smoothing (Relaxation)
Kangaroo Physics: https://vimeo.com/27484394
6464
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
6565
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Literal Boundary Representation A strategy for design modeling/3D sketching
Curves Surfaces Solids
CurvesFrom Objects
Points
http://forums.newtek.com/showthread.php?143633-Can-Lightwave-Model-an-airplane-boat-Hull-Like-the-way-they-do-in-this-C4D-tutorial
6666
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Transformative ModelingA different strategy for design modeling/3D sketching
SolidsTopological
TransformationsTransformed
Solids
CurvesFrom Objects
https://3dprint.com/88049/3d-printed-topology-joke/
6767
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Subdivision Modelling
A strategy for design modeling/3D sketching
Model a Simple BRep Subdivide to Smoothen
http://slodive.com/design/3ds-max-modeling-tutorials/
6868
Data Models
Types of Geometry
Dimensionality
Manifolds
Terminology
NURBS
B-Reps
Simplexes
Polyhedral Meshes
Polygon Meshes
Topology
Poincare Duality
Topological Model
Normal Vectors
Meshing
Mesh Smoothing
Mesh Subdivision
Design Modelling
Implicit modelling as level sets
A strategy for design modeling/3D sketching
Model a Scalar Field Get Iso-surfaces