Jump to content

OBD:OTLF: Difference between revisions

m
...
(my past self forgot about the optimized GQ list indices; fixing now)
m (...)
 
(2 intermediate revisions by one other user not shown)
Line 9: Line 9:
{{OBDtr| 0x00 | res_id  |FF0000| 01 45 02 00 | 581              | 00581-.OTLF }}
{{OBDtr| 0x00 | res_id  |FF0000| 01 45 02 00 | 581              | 00581-.OTLF }}
{{OBDtr| 0x04 | lev_id  |FFFF00| 01 00 00 06 | 3                | level 3 }}
{{OBDtr| 0x04 | lev_id  |FFFF00| 01 00 00 06 | 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| 03 49 00 00 | 18691            | array size }}
{{OBDtr| 0x1C | uint32   |00FFFF| 03 49 00 00 | 18691            | array size }}
{{OBDtrBK}}
{{OBDtrBK}}
{{OBDtr| 0x00 | int12-20 |FFC8C8| 00 00 00 00 | 0, 0            | bits 0-11 (12 bits) contain the number of gunk quads that intersect this leaf, bits 12-31 (20 bits) contain the index of the gunk quad list; see details below }}
{{OBDtr| 0x00 | uint12-20 |FFC8C8| 00 00 00 00 | 0, 0            | bits 0-11 (12 bits) contain the number of gunk quads that intersect this leaf, bits 12-31 (20 bits) contain the index of the gunk quad list; see details below }}
{{OBDtr| 0x04 | int32hb |FFFFC8| FF FF FF FF | -1              | negative x neighbour }}
{{OBDtr| 0x04 | uint32hb |FFFFC8| FF FF FF FF | -1              | negative x neighbour }}
{{OBDtr| 0x08 | int32hb |C8FFC8| 01 00 00 80 | 1, high bit      | positive x neighbour }}
{{OBDtr| 0x08 | uint32hb |C8FFC8| 01 00 00 80 | 1, high bit      | positive x neighbour }}
{{OBDtr| 0x0C | int32hb |C8FFFF| FF FF FF FF | -1              | negative y neighbour }}
{{OBDtr| 0x0C | uint32hb |C8FFFF| FF FF FF FF | -1              | negative y neighbour }}
{{OBDtr| 0x10 | int32hb |FFC8FF| 02 00 00 80 | 2, high bit      | positive y neighbour }}
{{OBDtr| 0x10 | uint32hb |FFC8FF| 02 00 00 80 | 2, high bit      | positive y neighbour }}
{{OBDtr| 0x14 | int32hb |FFC800| FF FF FF FF | -1              | negative z neighbour }}
{{OBDtr| 0x14 | uint32hb |FFC800| FF FF FF FF | -1              | negative z neighbour }}
{{OBDtr| 0x18 | int32hb |C800C8| 04 00 00 80 | 4, high bit      | positive z neighbour }}
{{OBDtr| 0x18 | uint32hb |C800C8| 04 00 00 80 | 4, high bit      | positive z neighbour }}
{{OBDtr| 0x1C |int9-9-9-5|C87C64| 7F FE FC 39 | 127, 127, 127, 7 | bits 0-8 (9 bits) contain the index of max x, bits 9-17 (9 bits) contain the index of max y, bits 18-26 (9 bits) contain the index of max z and bits 27-31 (5 bits) contain the index of the size of this leaf; see details below }}
{{OBDtr| 0x1C |uint9-9-9-5|C87C64| 7F FE FC 39 | 127, 127, 127, 7 | bits 0-8 (9 bits) contain the index of max x, bits 9-17 (9 bits) contain the index of max y, bits 18-26 (9 bits) contain the index of max z and bits 27-31 (5 bits) contain the index of the size of this leaf; see details below }}
{{OBDtr| 0x20 | int8-24  |B0C3D4| 00 00 00 00 | 0, 0            | bits 0-7 (8 bits) intersected BNV count, bits 8-31 (24 bits) BNV list index; see details below }}
{{OBDtr| 0x20 | uint8-24  |B0C3D4| 00 00 00 00 | 0, 0            | bits 0-7 (8 bits) intersected BNV count, bits 8-31 (24 bits) BNV list index; see details below }}
|}
|}


Line 51: Line 51:
:*:The amount of other visible geometry (characters, particles etc) does not affect this limit.
:*:The amount of other visible geometry (characters, particles etc) does not affect this limit.
:*only up to 262140 triangles (e.g., as 131070 quads) are allowed in a level's environment. Attempting to load a level with 262141 environment triangles (as any combination of triangles and quads) will cause Oni to [[Blam]].
:*only up to 262140 triangles (e.g., as 131070 quads) are allowed in a level's environment. Attempting to load a level with 262141 environment triangles (as any combination of triangles and quads) will cause Oni to [[Blam]].
:*:(N.B. This has been identified as a bug that will be fixed in future versions, so that the theoretical maximum of 1,052,670 quads (2,105,340‬ triangles) can be reached: if you cut a level into "sections" ("rooms" or "scenes") where you can view no more than 8192 triangles at once, then basically you are allowed to have 257 such "sections" in a level. If you add an extra set of environment polygons for cel-shading or lightmapping, then the limit will be cut in 2 or 4.)
:*:(N.B. This has been identified as a bug that will be fixed in future versions, so that the theoretical maximum of 1,052,670 quads (2,105,340‬ triangles) can be reached: if you cut a level into "sections" ("rooms" or "scenes") where you can view no more than 8192 triangles at once, then basically you are allowed to have 256 such "sections" in a level. If you add an extra set of environment polygons for cel-shading and/or lightmapping, then the limit will be cut in 2 or 3.)




281

edits