![[Graphics:../Images/bytesize_gr_7.gif]](../Images/bytesize_gr_7.gif)
This also defines plotcolors
![[Graphics:../Images/bytesize_gr_10.gif]](../Images/bytesize_gr_10.gif)
This defines PolySimpN, VptDepSimpN and MeshedImposterN
![[Graphics:../Images/bytesize_gr_13.gif]](../Images/bytesize_gr_13.gif)
In a conventional mesh and assuming triangles,
each vertex is corner of 6 triangles.
In a quadmesh this would be 4 but we assume triangles throughout.
MinDistance is the minimum distance that is accepted/corrected for (in meters).
In our current implementation prototype Mesa seems unable to handle indexedfacesets with texture properly. Thus we had to 'unfold' the indexedfaceset completely, giving VertexReuse=1.
BitsPerVertex is including the normals and texture coords.
So we have 3 coordinates for the position, 3 coordinates for the normal and 2 for the texture, or 8 coordinates in total.
[Pajarola] suggests that 4 to 6 bits are required for each coordinate, giving 48 bits per vertex .
Using compressed normals using a limited set of 4096 normal directions we need only 12 bits for the normal instead of 3*6=18[], giving 42 bits per vertex.
When data is transmitted binary but not compressed, we need 4 bytes per coordinate = 32 bytes = 256 bits per vertex.
When data is transmitted ASCII, we have 10 bytes per coordinate = 80 bytes = 640 bits per vertex.
BitsPerFace is number of bits to store connectivity info. [Pajarola] comes to 3.7 bits per triangle. Without compression, 3 indices are required. Coding indices binary with 4byte integers, we get 4*3=12 bytes = 96 bits per face.Coding ASCII with 5 characters (4 digits and a space) or 40 bits per index, we have 120 bits per face.
With our prototype, the indexedfaceset mode does not work properly, giving VertexReuse=1 but no need for indices and therefore BitsPerFace=0.
We currently do not account for overhead when multiple objects are involved, transformation between objects, lighting etc.
![[Graphics:../Images/bytesize_gr_15.gif]](../Images/bytesize_gr_15.gif)
![[Graphics:../Images/bytesize_gr_16.gif]](../Images/bytesize_gr_16.gif)
![[Graphics:../Images/bytesize_gr_17.gif]](../Images/bytesize_gr_17.gif)
![[Graphics:../Images/bytesize_gr_18.gif]](../Images/bytesize_gr_18.gif)
Assuming triangle polygons..
![[Graphics:../Images/bytesize_gr_19.gif]](../Images/bytesize_gr_19.gif)
![[Graphics:../Images/bytesize_gr_20.gif]](../Images/bytesize_gr_20.gif)
Quick check, without compression. An SMF ASCII file of a cow takes 180kb for 2904 vertices and 5804 faces. 87kb is vertices, 92k is face-indices.This file has no texture and normal coordinates estimation sould be larger than actual size. The actual vertexreuse factor in the cow is close to 6 (5804 triangles ~17412 corners / 2904 = 5.99
![[Graphics:../Images/bytesize_gr_22.gif]](../Images/bytesize_gr_22.gif)
Connectivity estimation is exactly right (87k)
![[Graphics:../Images/bytesize_gr_24.gif]](../Images/bytesize_gr_24.gif)
Vertex size is too large:
![[Graphics:../Images/bytesize_gr_26.gif]](../Images/bytesize_gr_26.gif)
Omitting per-vertex normal and uv coord, as is the case in our test file, saves 5 of the 8 values, so multiply by 3/8. Then the approximation is quite good (92k in our file):
![[Graphics:../Images/bytesize_gr_28.gif]](../Images/bytesize_gr_28.gif)