## Reverse Engineering 3d File Format

nabobnick
Unregistered

Post: #1
I am in the process of reverse engineering the Asheron's Call data files and so far can extract basic 3d objects and their textures and display them. Now I'm working on the more complicated objects which are collections of basic objects that when translated and rotated correctly line up to be one bigger object (like a humanoid monster).

So to save me a bit of time on research I am insterested in finding out what are the usual ways to represent taking two objects and positioning them next to each other. Is it just a 3d point and rotation, a quanterion (spelling?), or something else?

Right now from reading the pattern of numbers in the file I have a list of IDs of simple objects followed by a list of integers which may be indexes into this list of objects, after this is a large amount of floating point numbers. How many floating point numbers are needed for each match up of one object to another?

I went through one complex object and viewed it's individual parts to so that I could try to match up two parts of it that I easily recognize (in this case the head, chest and groin area of a humanoid monster). I'm hoping based off of what I find out about this subject I can pick out the pattern of this record's format.

Thanks for the help!
nabobnick
Unregistered

Post: #2
OK found the answer to my own question, luckily the answer is also specific to Asheron's Call. Some other data in the file (dungeons) uses this format as a means of translation and rotation so it's safe to assume the data I'm currently working with is similar:

float x
float y
float z
float a
float b
float c
float d

The vector <x, y, z> is the translation and the quaternion <a, b, c, d> is the rotation.

Now it looks like all I have to do is study how to use quaternion's to rotate objects in OpenGL, and I need to make sure that I can find the correct # of 7 float sections in the record and that I can determine which set goes with which object.