OBD:IDXA AKEV 1

From OniGalore
Revision as of 17:42, 15 August 2007 by Geyser (talk | contribs)
Jump to navigation Jump to search
ONI BINARY DATA
HPge << Other file types >> IGHH
IDXA : Index Array
switch to XML:IDXA page
Overview @ Oni Stuff
OBD.png



idxa_m1a.gif


Offset Type Raw Hex Value Description
0x00 res_id 01 D7 00 00 268 00268-.IDXA
0x04 lev_id 01 00 00 00 3 level 3
0x08 unused[20] AD DE dead blank filler
0x1C int32 16 00 00 00 22 array size
First element (black outline)
0x00 int32 00 00 00 80 0, YES index, high bit
IDXA usage
  • Two kinds of IDXA are used in AKEV: they define quads affected by env_show.
  • Two kinds of IDXA used in AKOT define the quads and BNVs intersected by a leaf.
  • Two kinds of IDXA are used in M3GM: triangle strips and face normal groups.
  • ONOA uses several similar IDXA, one to store the quad IDs of every object.
High bit
The high bit is only used for triangle strips in M3GM.
It is set for the first vertex index of every triangle strip.
AKEV indices
Both IDXA have the same number of entries, equal to the number of togglable quads.
The first IDXA lists the quad IDs (index into AGQG, AGQC, AGQR and AGDB arrays).
The second IDXA assigns a gunk ID to every quad (one or more quads per gunk).
AKOT indices
The first IDXA lists the IDs of the quads intersected by octtree leaves, one leaf after another.
The leaf specifies how many quad IDs Oni should read from the IDXA and where it should start.
Same thing for the intersected BNVs: the leaf specifies the size and position of the BNV list.



ONI BINARY DATA
HPge << Other file types >> IGHH
IDXA : Index Array
Generic file