Previous | Next --- Slide 29 of 36
Back to Lecture Thumbnails
yuanzhec

I wonder where the 36x comes from. If we're talking about the storage cost of encoding connectivity, shouldn't it be proportional to the number of edges as well?

motoole2

@yuanzhec Yes, good question! I won't give you a complete answer (yet). :-) But allow me take this opportunity to give you a few hints on how to get there.

As mentioned in lecture, there is an important property associated with large triangle meshes that we need to compute these storage cost numbers: the ratio between the number of vertices, edges, faces in a mesh is (approximately) given by 1 : 3 : 2. That is, for every vertex in a mesh, there is approximately 3 edges and 2 faces. So with respect to the adjacency list which requires storing 3 vertex indices per face, the cost in terms of number of vertices is 6 indices per vertex, since there are approximately 2 faces for every vertex.

But where does this 1 : 3 : 2 ratio come from though? Here is a list of famous 3D models used in computer graphics; you will notice that there is consistently twice as many faces as vertices (too bad the number of edges is not listed here). This is not a coincidence.

For a closed triangular mesh, the first observation is that every edge is contained between 2 faces, and every face has 3 edges. From this, we have the following relationship of 2 * #edges = 3 * #faces. In other words, the ratio between the number of edges to faces is 3 : 2.

We can also take advantage of the Euler characteristic to determine the relationship between the number of vertices, edges, and faces. The surface of a convex polyhedron satisfy the following equation: #vertices - #edges + #faces = 2. Plugging in our ratio from before, we determine that there is 1 vertex for every 3 edges and 2 faces in a mesh.

As for the storage cost of incidence matrices and halfedge meshes, try to work them out yourself. :-) (FYI: You might get a slightly different answer.)

Doris

Is the reason for 24verstices that every edge has 2 vertices and every face has 3 edges? Since we have to store a pair of number to represent the index of the edge and vertex or the edge and face, the whole storage is about 2(32+23)*vertices.

motoole2

@Doris Got it! This is using a coordinate list (COO) storage scheme for encoding the sparse matrix. Of course, there are other ways to store a sparse matrix, all resulting in different storage cost values.