OBD:IDXA AKEV 1: Difference between revisions
Jump to navigation
Jump to search
AKEV 1 AKEV 2 AKOT 1 AKOT 2 M3GM 1 M3GM 2 ONOA
mNo edit summary |
(design; unfinished) |
||
Line 3: | Line 3: | ||
---- | ---- | ||
<center>'''AKEV 1''' [[OBD:IDXA_AKEV_2|AKEV 2]] [[OBD:IDXA_AKOT_1|AKOT 1]] [[OBD:IDXA_AKOT_2|AKOT 2]] [[OBD:IDXA_M3GM_1|M3GM 1]] [[OBD:IDXA_M3GM_2|M3GM 2]] [[OBD:IDXA_ONOA|ONOA]]</center> | |||
---- | |||
[[image:idxa_a1a.gif]] (Can't upload images right now. (Reason: Wiki error.)) | |||
{{Table}} | {{Table}} | ||
{{OBDth}} | {{OBDth}} | ||
{{OBDtr|0x00|res_id|FF0000|01 | {{OBDtr| 0x00 | res_id |FF0000| 01 53 02 00 | 595 | 00595-.IDXA }} | ||
{{OBDtr|0x04|lev_id|FFFF00|01 00 00 | {{OBDtr| 0x04 | lev_id |FFFF00| 01 00 00 00 | 3 | level 3 }} | ||
{{OBDtr|0x08| | {{OBDtr| 0x08 | char[20]|00FF00| AD DE | dead | unused }} | ||
{{OBDtr|0x1C|int32|00FFFF| | {{OBDtr| 0x1C | int32 |00FFFF| 91 01 00 00 | 401 | array size }} | ||
{{OBDtrBK}} | {{OBDtrBK}} | ||
{{OBDtr|0x00|int32| | {{OBDtr| 0x00 | int32 |FFC8C8| 15 50 00 00 | 20501 | AGQG element ID (used for: [[OBD:IDXA_AKEV_2|AKEV 2]] needs it)}} | ||
|} | |} | ||
;IDXA usage | ;IDXA usage | ||
*Two kinds of IDXA are used in [[AKEV]]: they define quads affected by [[env_show]]. | *Two kinds of IDXA are used in [[OBD:AKEV|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 used in [[OBD:AKOT|AKOT]] define the quads and BNVs intersected by a leaf. | ||
*Two kinds of IDXA are used in [[M3GM]]: triangle strips and face normal groups. | *Two kinds of IDXA are used in [[OBD:M3GM|M3GM]]: triangle strips and face normal groups. | ||
*[[ONOA]] uses several similar IDXA, one to store the quad IDs of every object. | *[[OBD:ONOA|ONOA]] uses several similar IDXA, one to store the quad IDs of every object. | ||
;High bit | ;High bit | ||
:The high bit is only used for triangle strips in [[M3GM]]. | :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. | :It is set for the first vertex index of every triangle strip. | ||
;AKEV indices | ;AKEV indices | ||
Line 33: | Line 39: | ||
{{OBD_File_Footer | type=IDXA | prev=HPge | next=IGHH | name=Index Array| family=Generic}} | |||
{{OBD_File_Footer | type=IDXA | prev=HPge | next=IGHH | name=Index Array| family=Generic |
Revision as of 13:38, 15 September 2007
|
(Can't upload images right now. (Reason: Wiki error.))
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) |
- 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 |