2
\$\begingroup\$

I'm reversing a 3d model format from a famous game (not sure if i should mention it), which is released both for windows (app store) and for Iphone and android.

The weird thing is that while the windows app model files contain an index buffer, the model files from the Iphone contain absolutely nothing at all.

At first i thought maybe everything is defined linearly and i should do the triangulation myself using the vertex order from the vertex buffer, but that didn't work at all. I tried reading the vertex buffer as a triangle strip, but this also didn't work.

Is there any possibility that OpenGL ES (which from what i know is what runs on the iphone) renders the models without an index buffer? Is it possible that all the tesselation is done automatically at runtime?

I'm attaching 2 version of the same model for both platforms Iphone: https://www.dropbox.com/s/ctgjkvv9xmpcqr3/iphone_model?dl=0 Windows: https://www.dropbox.com/s/ghmtzux5tznw493/win_model?dl=0

The Vertex Count for this part is 1241 and the indices count: 6066. The very first section on both files (windows version contains a 16 byte padding) is the vertex buffer (0x8 bytes per vertex)

\$\endgroup\$
  • \$\begingroup\$ Guessing with no data... can you share some of the actual data, or at least metrics about it? I'm wondering in particular if the vertex data is the same length for both. Maybe the index data is tucked away somewhere else. Usually, as a developer, you'd really want to have the exact same models on your supported platforms. (But Windows is often the outlier.) \$\endgroup\$ – david van brink Nov 13 '15 at 5:38
  • \$\begingroup\$ Yes of course, i'll share some data once i'm back home. From what i remember by investigating the same model over the windows and the iphone platform, the vertices and the indices numbers were EXACTLY the same. Therefore the vertex array's were of the same length (I'm using the same code to parse both models, so this should be the case). I'll check again to make sure later on. \$\endgroup\$ – Greg K. Nov 13 '15 at 8:18
  • \$\begingroup\$ I uploaded the 2 geometry streams \$\endgroup\$ – Greg K. Nov 13 '15 at 15:40
  • \$\begingroup\$ In your question you say that the Windows model is different than the iPhone model. In your first comment you say that the Windows model is exactly the same as the iPhone model. It's hard to understand what you're describing. The two dropbox files are different lengths, but apart from that, to me, they're just some binary files. \$\endgroup\$ – david van brink Nov 13 '15 at 18:39
  • \$\begingroup\$ Yeah, i'm sorry about the misunderstanding, i'm using the same word by mistake. The only difference between the two is that the iphone model simply lacks the index buffer section, that's why those streams are of different size. Other than that, when previewing the vertices, the actual geometry, is exactly the same, the number of points is exactly the same. So practically its the same geometry model. I hope i made it clear now. \$\endgroup\$ – Greg K. Nov 13 '15 at 21:25