Interesting case here.
Especially "unknown index" is strange. I can't think of any value having something to do with face count. But like you suggested, it might very well have something to do with the order of drawing. However, most of the time that is done on the fly ("z-sorting" or "depth-sorting"), since your point of view may vary.
However, the idea of triangle strips, fans etc. is that the data is in the right order already. You just send vertex after vertex, and thats it (see
http://bruno.cicv.fr/etudes/rsc/OpenGL. ... l-wv-2.png ). But as the data here includes 3 vertex indices, its most likely that this case involves just regular triangles.
I'd also suspect vertex normals in there, are you sure that none of the values range [-1,1]? Or at least an index to a normal array. You'll need a structure of 3 32-bit floats, allthough it can also be stored in 16-bit, or even 3 bytes (like its done these days in normal maps). Idealy, you have a seperate array of vertex normals, which can be shared by multiple vertices (for example, a heavily subdivided cube would need only 6 normals, one for each side). But it's not uncommon to store normals along with vertices, e.g.;
Code:
struct vertex
{
float posx;
float posy;
float posz;
float vecx;
float vecy;
float vecz;
};
A face(t) normal could also go per face data, but I can't think of a reason to do that, calculating vertex normals on the fly is very expensive, and flat shaded triangles obviously look like crap.
Another thing that could be in there are vertex colors (3 bytes per vertex if done efficiently), perhaps even an 1-byte index per vertex to a palette containing vertex colors.
Also, per face you can expect an index to a material. Could one of the the last values be an index to a material? Often a model may have only one material, and be zero because of that.