Can anyone help me to understand why polygon soup need (~3x#vertices)?
In my opinion, for polygon soup, each vertex should store:
one unique vertex index number
three vertex coordinate value(x, y, z)
So that would be (4 x #vertices) total for polygon soap. Please correct me if I'm wrong. Thanks a lot.
Also do we need to consider following storage cost?
three integers that represent the face (i, j, k), each integer is the index of a vertex
skygao
@Nina You probably don't need to store the vertex index number within the vertex data itself because you get the indices for free in a vertex array. Therefore it's 3x instead of 4x. Describing triangles with indices is usually a good idea, especially in terms of storage as a vertex may often appear in multiple faces. In fact, it is how it's done in a lot of mesh formats, including the COLLADA files you are working with in p2. In modern GL you would also use indexed access for drawing things:
Also, these calculations only involve the storage requirements of encoding connectivity information. We can ignore data storage needed to represent the positions and existence of the vertices for the calculations on this slide.
Edited
Nina
@BryceSummers, if we only consider connectivity in this case, I don't think vertex coordinates storage should be considered, which also encodes vertex data. We probably should care about the 3 indices numbers for each triangle, that actually encodes connectivity. Please let me know if I'm wrong, thanks.
PandaX
When the triangle mesh grows to infinity: the ratio between V, E, F is equal to 1:3:2, and each face requires 3 indices to represent. So the total storage cost of triangle soup is 3(2V) = 6 V. Is this right?
I do not understand why the storage cost is 3*V.
kmcrane
Kayvon also has some good comments about the tradeoffs between different mesh data structures on this slide.
Does anyone want to try to corroborate or refute the connectivity storage counts above?
This website about Euler characteristics may or may not be useful.
Can anyone help me to understand why polygon soup need (~3x#vertices)?
In my opinion, for polygon soup, each vertex should store:
one unique vertex index number
three vertex coordinate value(x, y, z)
So that would be (4 x #vertices) total for polygon soap. Please correct me if I'm wrong. Thanks a lot.
Also do we need to consider following storage cost?
@Nina You probably don't need to store the vertex index number within the vertex data itself because you get the indices for free in a vertex array. Therefore it's 3x instead of 4x. Describing triangles with indices is usually a good idea, especially in terms of storage as a vertex may often appear in multiple faces. In fact, it is how it's done in a lot of mesh formats, including the COLLADA files you are working with in p2. In modern GL you would also use indexed access for drawing things:
glBindBuffer(GL_ARRAY_BUFFER, vertex_buffer); glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_INT, index_buffer);
@Nina, I agree with Sky.
Also, these calculations only involve the storage requirements of encoding connectivity information. We can ignore data storage needed to represent the positions and existence of the vertices for the calculations on this slide.
Edited
@BryceSummers, if we only consider connectivity in this case, I don't think vertex coordinates storage should be considered, which also encodes vertex data. We probably should care about the 3 indices numbers for each triangle, that actually encodes connectivity. Please let me know if I'm wrong, thanks.
When the triangle mesh grows to infinity: the ratio between V, E, F is equal to 1:3:2, and each face requires 3 indices to represent. So the total storage cost of triangle soup is 3(2V) = 6 V. Is this right?
I do not understand why the storage cost is 3*V.
Kayvon also has some good comments about the tradeoffs between different mesh data structures on this slide.