Jump to content

OBD:IDXA AKEV 1: Difference between revisions

m
...
(design; unfinished)
m (...)
 
(7 intermediate revisions by 5 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 14: Line 14:
{{OBDtr| 0x00 | res_id  |FF0000| 01 53 02 00 | 595        | 00595-.IDXA }}
{{OBDtr| 0x00 | res_id  |FF0000| 01 53 02 00 | 595        | 00595-.IDXA }}
{{OBDtr| 0x04 | lev_id  |FFFF00| 01 00 00 00 | 3          | level 3 }}
{{OBDtr| 0x04 | lev_id  |FFFF00| 01 00 00 00 | 3          | level 3 }}
{{OBDtr| 0x08 | char[20]|00FF00| AD DE      | dead      | unused }}
{{OBDtr| 0x08 | char[20]|00FF00| AD DE      | dead      | padding }}
{{OBDtr| 0x1C | int32   |00FFFF| 91 01 00 00 | 401        | array size }}
{{OBDtr| 0x1C | uint32   |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 | uint32   |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}}
279

edits