OBD:IDXA AKEV 1: Difference between revisions

From OniGalore
Jump to navigation Jump to search
(design; unfinished)
m (changed family)
 
(6 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{OBD_File_Header | type=IDXA | prev=HPge | next=IGHH | name=Index Array| family=Generic | align=center}}
{{OBD_File_Header | type=IDXA | prev=HPge | next=IGHH | name=Index Array| family=General | align=center}}




----
----
<center>'''AKEV 1'''&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[[OBD:IDXA_AKEV_2|AKEV 2]]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[[OBD:IDXA_AKOT_1|AKOT 1]]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[[OBD:IDXA_AKOT_2|AKOT 2]]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[[OBD:IDXA_M3GM_1|M3GM 1]]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[[OBD:IDXA_M3GM_2|M3GM 2]]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[[OBD:IDXA_ONOA|ONOA]]</center>
<center>'''AKEV 1'''&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[[OBD:IDXA_AKEV_2|AKEV 2]]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[[OBD:IDXA_AKOT_1|AKOT 1]]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[[OBD:IDXA_AKOT_2|AKOT 2]]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[[OBD:IDXA_M3GM_1|M3GM 1]]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[[OBD:IDXA_M3GM_2|M3GM 2]]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[[OBD:IDXA_ONOA|ONOA]]</center>
----
----




[[image:idxa_a1a.gif]] (Can't upload images right now. (Reason: Wiki error.))
[[image:idxa_a1a.gif]]




Line 17: Line 17:
{{OBDtr| 0x1C | int32  |00FFFF| 91 01 00 00 | 401        | array size }}
{{OBDtr| 0x1C | int32  |00FFFF| 91 01 00 00 | 401        | array size }}
{{OBDtrBK}}
{{OBDtrBK}}
{{OBDtr| 0x00 | int32  |FFC8C8| 15 50 00 00 | 20501      | AGQG element ID (used for: [[OBD:IDXA_AKEV_2|AKEV 2]] needs it)}}
{{OBDtr| 0x00 | int32  |FFC8C8| 15 50 00 00 | 20501      | [[AGQG]] element ID (used for: [[OBD:IDXA_AKEV_2|AKEV 2]] needs it)}}
|}
|}




;IDXA usage
{{OBD_File_Footer | type=IDXA | prev=HPge | next=IGHH | name=Index Array| family=General}}
*Two kinds of IDXA are used in [[OBD:AKEV|AKEV]]: they define quads affected by [[env_show]].
*Two kinds of IDXA used in [[OBD:AKOT|AKOT]] define the quads and BNVs intersected by a leaf.
*Two kinds of IDXA are used in [[OBD:M3GM|M3GM]]: triangle strips and face normal groups.
*[[OBD:ONOA|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 [[OBD:M3GM|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.


 
{{OBD}}
{{OBD_File_Footer | type=IDXA | prev=HPge | next=IGHH | name=Index Array| family=Generic}}

Latest revision as of 01:58, 8 December 2023

ONI BINARY DATA
HPge << Other file types >> IGHH
IDXA : Index Array
switch to XML:IDXA page
Overview @ Oni Stuff
OBD.png



AKEV 1          AKEV 2          AKOT 1          AKOT 2          M3GM 1          M3GM 2          ONOA


Idxa a1a.gif


Offset Type Raw Hex Value Description
0x00 res_id 01 53 02 00 595 00595-.IDXA
0x04 lev_id 01 00 00 00 3 level 3
0x08 char[20] AD DE dead unused
0x1C int32 91 01 00 00 401 array size
First element (black outline)
0x00 int32 15 50 00 00 20501 AGQG element ID (used for: AKEV 2 needs it)


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