OBD:M3GM: Difference between revisions

From OniGalore
Jump to navigation Jump to search
m (fixed typo)
m (altered IDXA links)
Line 14: Line 14:
{{OBDtr|0x14|link    |FFFFC8|01 F0 00 00|240  | link to 00240-.[[OBD:VCRA|VCRA]] (face normals) }}
{{OBDtr|0x14|link    |FFFFC8|01 F0 00 00|240  | link to 00240-.[[OBD:VCRA|VCRA]] (face normals) }}
{{OBDtr|0x18|link    |FFFFC8|01 ED 00 00|237  | link to [[OBD:TXCA|00237-.TXCA]] (vertex UVs) }}
{{OBDtr|0x18|link    |FFFFC8|01 ED 00 00|237  | link to [[OBD:TXCA|00237-.TXCA]] (vertex UVs) }}
{{OBDtr|0x1C|link    |FFFFC8|01 0C 01 00|268  | link to [[OBD:IDXA|00268-.IDXA]] (triangle strips) }}
{{OBDtr|0x1C|link    |FFFFC8|01 0C 01 00|268  | link to [[OBD:IDXA_M3GM_1|00268-.IDXA]] (triangle strips) }}
{{OBDtr|0x20|link    |FFFFC8|01 11 01 00|273  | link to 00273-.[[OBD:IDXA|IDXA]] (face groupings) }}
{{OBDtr|0x20|link    |FFFFC8|01 11 01 00|273  | link to [[OBD:IDXA_M3GM_2|00273-.IDXA]] (face groupings) }}
{{OBDtr|0x24|link    |FFFFC8|01 D8 00 00|216  | link to 00216-.[[OBD:TXMP|TXMP]] (texture) }}
{{OBDtr|0x24|link    |FFFFC8|01 D8 00 00|216  | link to 00216-.[[OBD:TXMP|TXMP]] (texture) }}
{{OBDtr|0x28|link    |C8FFC8|00 00 00 00|unused| unused link; never used in Oni}}
{{OBDtr|0x28|link    |C8FFC8|00 00 00 00|unused| unused link; never used in Oni}}

Revision as of 21:05, 16 September 2007

ONI BINARY DATA
M3GA << Other file types >> Mtrl
M3GM : Geometry
switch to XML:M3GM page
Overview @ Oni Stuff
OBD.png


M3gm all.gif


Offset Type Raw Hex Value Description
0x00 res_id 01 D7 00 00 215 00215-door_1_0.M3GM
0x04 lev_id 01 00 00 06 3 level 3
0x08 int32 00 00 00 00 0 unknown; maybe a runtime pointer?
0x0C link 01 DA 00 00 218 link to 00218-.PNTA (vertex XYZs)
0x10 link 01 F7 00 00 247 link to 00247-.VCRA (vertex normals)
0x14 link 01 F0 00 00 240 link to 00240-.VCRA (face normals)
0x18 link 01 ED 00 00 237 link to 00237-.TXCA (vertex UVs)
0x1C link 01 0C 01 00 268 link to 00268-.IDXA (triangle strips)
0x20 link 01 11 01 00 273 link to 00273-.IDXA (face groupings)
0x24 link 01 D8 00 00 216 link to 00216-.TXMP (texture)
0x28 link 00 00 00 00 unused unused link; never used in Oni
0x2C char[20] AD DE dead unused


Vertices
XYZ and UV coordinates are stored in parallel (same number of entries in PNTA and TXCA).
Vertex normals
The first VCRA stores the normals for every vertex (same entries as in PNTA and TXCA).
Vertex normals are supposed to be used by Gouraud shading (directional lighting).
The precomputed normals are apparently ignored by Oni, which generates its own...
Face normals
The second VCRA stores the normals for every face (groups defined by the second IDXA).
Face normals may be used for env-mapping (but vertex normals could also work there).
The precomputed face normals are apparently ignored by Oni too... didn't check much.
Triangle strips
The first IDXA lists the triangles as strips. The IDs are the ones in PNTA and IDXA.
The start of a new strip is signaled by a high bit in the ID of its first vertex.
Strips are more optimal for rendering, they are generated when authoring an M3GM.
Face groupings
The second IDXA groups the triangles into faces (oriented by the second VCRA).
Even if the normals are computed at runtime, the group assignment might be used.
(e.g., if a face normal is defined as the average of the normals of the triangles)


ONI BINARY DATA
M3GA << Other file types >> Mtrl
M3GM : Geometry
Generic file