Handles A handle in a 3d mesh is a through hole. The number of handles can be extracted of the genus of the 3d mesh. Genus is the number of times we can cut 2k edges without disconnecting the 3d mesh. The formula for the genus of the triangle mesh is: The justification: For a 0 genus triangle mesh we can write the formula as follows: To prove it we will need to use the Cauchy s proof, Now we can fully assume that F-E+V=2 Without any loss of generality we can assume that the number of faces in a manifold mesh is the same as the number of triangles: T=F, hence: T-E+V=2 The uses u is as follow: - each triangle uses 3 edges U=3T - each edge is used by 2 triangles U=2E Therefore we can assert that 3T=2E, in other words E=3T/2 this way we can reformulate the T-E+V=2 as T-3T/2+V=2 and from here multiply by 2 and 2T-3T+2V=4
Point in solid test Parity is the key for our technique. Remembering the formula of the point in a tetrahedra: We have a formula called s, that computes if the point a is front facing a triangle d,c,b:
Assuming that we know the formula, for computing if a point is inside a solid, invent a new formula called PinT(a,b,c,d), assuming the following distribution of the points: PinT(a,b,c,d) returns: With those new tools we will be able to deduce if a point is inside a solid or not following the next technique, we pick an arbitrary point in the space O, and for all the tetrahedra defined by this arbitrary point and the triangles that define the solid, we would say that the point lies in the solid if there is an ODD number of tetrahedra that contains that point.
Connectivity/geometry discrepancy Some models can have non-manifold singularities, that is that an edge can be shared by more than 2 triangles, but despite that we can have an invalid geometry to represent it replicate the edges shared by more than 2 triangles The amount of replication The pseudo technique for obtaining convex hulls and why It does not work. The idea that an intuitive idea for obtaining a convex hull out of any concave triangle mesh is converting any concave edge into convex. The problem lies in that the mesh can intersect. In that case, we would obtain a convex shape but NOT a convex hull.
Compression and simplification Loss less compression: We quantize the parameters (depending on the quantization we are losing accuracy on the measures. We compress all this information, and then rebuild the shape. Lossy compression: We construct an approximation of the surface (different representation) then, compress. LOD: Level of detail. Triangle count reduction techniques - Divide by sets - Name the vertex - Any triangle that happens to have 3 vertices in the same cluster we collapse it into a point. - A triangle that happens to have 2 vertices in the same set, we convert it into an edge. This technique does not guarantee keeping the topology unchanged NON PRESERVING SIMPLIFICATION Repeatedly collapse best edge - Pick the best edge (depends on the goal we want to achieve): The ones that minimize error between original and resulting level of detail, geometric proximity clustering of vertices, collapse edges (collapse the longer edges in almost planar regions) or point-plane distance. - With this technique we bound the Hausdorff error of the simplification. Each vertex is guaranteed not to be moved for more distance than the diameter of triangle bounding circle.
3D compression Compact encoding of 3d representations with efficient compression decompression algorithms. We can compress the connectivity and the geometry of the 3d shape. Location: specifying where the interior vertices are. Incidence: Defining how the surface interpolates the points. The way of compressing the 3d shape: - Codification of each triangle independently (their vertices and incidence) : highly redundant. - Triangle strips: given the corridor codifying the incidence is just one bit (left or right). But you have to codify each vertex twice so the adjacent corridors share their vertices: also redundant - Vertex and Triangle tables best performance, no redundancy. Connectivity compression - Triangle strip: its simple and cheap but the strips are irregular and have warts, so breaks all the simplicity of the idea. - Vertex Spanning Tree and Triangle Spanning Tree: knowing the relative position of triangles between them and knowing vertex positions relative to each other, we can codify the mesh. The triangle spanning tree can be codified using two bits per triangle and the vertex spanning tree using 2 bits per vertex. The next step: Topological surgery.