Jump to content

Recommended Posts

Posted

Hello! I tried to rip models from Spore Hero, and I was able to handle the vertices and UV coordinates, but I had problems with faces: I can't find their exact data at all.
All I know about the rpm structure at the moment is that polygons have a "blocked" structure: a polygon that consists of faces(?), vertices, UV coordinates, and possibly some other information. Each such polygon has the following header:

50 48 00 3E 00 20 00 0F 01 46 20 11 00 00 01 40 00 00 01 60 00 00 01 CC 00 00 02 74 00 00 00 00


All I can say about the header is that 00 20 indicates the number of faces. How can I understand this if I can't display them? Well, the game Spore has exactly the same models in a different format (.rw4/.rdx9), but not all of them. Immediately after the header, there are presumably faces, and here repeats the bytes 98 00 04 00, after "faces" following 16 bytes of 00, then vertices and UV cords.
Here is an archive with the model and the addresses of the vertices and UV cords:
(Hope this info helps to figure out how rip rpm models)

CE_simple_sphere.zip

  • Engineers
Posted (edited)

Hello! You could try using byte face indices starting from 0x1034 in the .rpm.

(I thought of using strips with 0xFF being the terminator but the sequence FF 7F FF at 0x1088 seems to exclude that.)

Auto generated faces are too ugly:

sphere-rpm.png

Edited by shak-otay
typo
Posted

It seems as though the model data starts at 0x200 with a 0x20-byte header, which contains some offsets to the data sections relative to 0x200.  So you've got 0x720 for vertices, 0xac8 for UVs, 0xe34 for normals maybe.  The 0x31 in this header indicates the number of face sections (0x31 = 49) starting just after this header.  Each face section starts with a face type - 0x98 seems to be a tri-strip, then a short count value, followed by 4 bytes per count.  These 4 bytes are probably texture number (not sure), then it's something like vertex number, UV number, normal number.  So you have to reconstruct the buffers because they're not a direct 1:1 match.  For example, you have more UVs than vertices.

 

 

 

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...