LBA2:3D model: Difference between revisions
Jump to navigation
Jump to search
| [checked revision] | [checked revision] |
No edit summary |
|||
| (9 intermediate revisions by 6 users not shown) | |||
| Line 10: | Line 10: | ||
== Specification == | == Specification == | ||
{{incomplete}} | {{incomplete}} | ||
<pre> | |||
[ Header ] | |||
00: s32 bodyFlag | |||
08: s32 xMin | |||
0C: s32 xMax | |||
10: s32 yMin | |||
14: s32 yMax | |||
18: s32 zMin | |||
1C: s32 zMax | |||
20: u32 Number of bones | |||
24: u32 Offset to bones | |||
28: u32 Number of vertices | |||
2C: u32 Offset to vertices | |||
30: u32 Number of normals | |||
34: u32 Offset to normals | |||
38: u32 Number of unknown1 | |||
3C: u32 Offset to unknown1 | |||
40: u32 Number of polygons | |||
44: u32 Offset to polygons | |||
48: u32 Number of lines | |||
4C: u32 Offset to lines | |||
50: u32 Number of spheres | |||
54: u32 Offset to spheres | |||
58: u32 Number of textures | |||
5C: u32 Offset to textures | |||
[ / Header ] | |||
{{providers|[[provider:: | [ Bone ] | ||
00: u16 Parent bone | |||
02: u16 Vertex | |||
04: u16 ?? | |||
06: u16 ?? | |||
[ / Bone ] | |||
[ Vertex ] | |||
00: s16 x | |||
02: s16 y | |||
04: s16 z | |||
06: u16 Bone | |||
Vertex position is relative to its bone position. | |||
And each bone position itself is relative to its parent bone position | |||
[ / Vertex ] | |||
[ Normal ] | |||
00: s16 x | |||
02: s16 y | |||
04: s16 z | |||
06: u16 ?? | |||
[ / Normal ] | |||
[ Unknown1 ] | |||
00: u16 ?? | |||
02: u16 ?? | |||
04: u16 ?? | |||
06: u16 ?? | |||
[ / Unknown1 ] | |||
[ Polygon section ] | |||
Polygon section is made of one or more blocks. Each blocks can describe one or more Polygon. | |||
[ Polygon Block] | |||
00: u8 Block ID | |||
01: u8 00h For triangle and 80h for Quad | |||
02: u16 Number of polygons | |||
04: u16 Size of data (including this header) | |||
06: u16 ?? | |||
Each polygon is described with ((size of data - 8) / Number of polygons) bytes : | |||
[ Polygon ] | |||
the 12 firsts bytes are mandatory : | |||
00: u16 1st point ID | |||
02: u16 2nd point ID | |||
04: u16 3rd point ID | |||
06: u16 4th point ID (only if Quad) | |||
08: u8 colour ID | |||
09: u8 ?? | |||
0A: u8 ?? | |||
0B: u8 ?? | |||
If the polygon is described with more than 12 bytes | |||
from 0Ch to 2BH, UV info for texture mapping: | |||
0C: u8 ?? | |||
0D: u8 U1 | |||
0E: u8 ?? | |||
0F: u8 V1 | |||
10: u8 ?? | |||
11: u8 U2 | |||
12: u8 ?? | |||
13: u8 V2 | |||
14: u8 ?? | |||
15: u8 U3 | |||
16: u8 ?? | |||
17: u8 V3 | |||
18: u8 ?? | |||
19: u8 U4 | |||
2A: u8 ?? | |||
2B: u8 V4 | |||
If the polygon is described with more than 24 bytes : ?? | |||
[ / Polygon] | |||
[ / Polygon Block] | |||
[ / Polygon section ] | |||
[ Lines ] | |||
00: u16 ?? | |||
02: u16 colour | |||
04: u16 vertex1 | |||
06: u16 vertex2 | |||
[ / Unknown2 ] | |||
[ Sphere ] | |||
00: u16 ?? | |||
02: u8 ?? | |||
03: u8 colour | |||
04: u16 vertex | |||
06: u8 size | |||
07: u8 ?? | |||
[ / Sphere ] | |||
[ Textures ] | |||
00: u8 x | |||
01: u8 y | |||
02: u8 w | |||
03: u8 h | |||
[ / Textures ] | |||
</pre> | |||
{{providers|[[provider::xesf]]}} | |||
Latest revision as of 09:12, 7 November 2020
| 3D model | ||
|---|---|---|
| Extension |
LM2 |
|
| Occurence |
LBA2 |
|
| Colour |
|
|
| Programs supporting this format | ||
|
(none) |
||
| References | ||
LM2 files contain 3D models used for Actors and other objects in LBA2.
Specification[edit]
| This article needs completion. Please provide more information if you can. |
[ Header ] 00: s32 bodyFlag 08: s32 xMin 0C: s32 xMax 10: s32 yMin 14: s32 yMax 18: s32 zMin 1C: s32 zMax 20: u32 Number of bones 24: u32 Offset to bones 28: u32 Number of vertices 2C: u32 Offset to vertices 30: u32 Number of normals 34: u32 Offset to normals 38: u32 Number of unknown1 3C: u32 Offset to unknown1 40: u32 Number of polygons 44: u32 Offset to polygons 48: u32 Number of lines 4C: u32 Offset to lines 50: u32 Number of spheres 54: u32 Offset to spheres 58: u32 Number of textures 5C: u32 Offset to textures [ / Header ] [ Bone ] 00: u16 Parent bone 02: u16 Vertex 04: u16 ?? 06: u16 ?? [ / Bone ] [ Vertex ] 00: s16 x 02: s16 y 04: s16 z 06: u16 Bone Vertex position is relative to its bone position. And each bone position itself is relative to its parent bone position [ / Vertex ] [ Normal ] 00: s16 x 02: s16 y 04: s16 z 06: u16 ?? [ / Normal ] [ Unknown1 ] 00: u16 ?? 02: u16 ?? 04: u16 ?? 06: u16 ?? [ / Unknown1 ] [ Polygon section ] Polygon section is made of one or more blocks. Each blocks can describe one or more Polygon. [ Polygon Block] 00: u8 Block ID 01: u8 00h For triangle and 80h for Quad 02: u16 Number of polygons 04: u16 Size of data (including this header) 06: u16 ?? Each polygon is described with ((size of data - 8) / Number of polygons) bytes : [ Polygon ] the 12 firsts bytes are mandatory : 00: u16 1st point ID 02: u16 2nd point ID 04: u16 3rd point ID 06: u16 4th point ID (only if Quad) 08: u8 colour ID 09: u8 ?? 0A: u8 ?? 0B: u8 ?? If the polygon is described with more than 12 bytes from 0Ch to 2BH, UV info for texture mapping: 0C: u8 ?? 0D: u8 U1 0E: u8 ?? 0F: u8 V1 10: u8 ?? 11: u8 U2 12: u8 ?? 13: u8 V2 14: u8 ?? 15: u8 U3 16: u8 ?? 17: u8 V3 18: u8 ?? 19: u8 U4 2A: u8 ?? 2B: u8 V4 If the polygon is described with more than 24 bytes : ?? [ / Polygon] [ / Polygon Block] [ / Polygon section ] [ Lines ] 00: u16 ?? 02: u16 colour 04: u16 vertex1 06: u16 vertex2 [ / Unknown2 ] [ Sphere ] 00: u16 ?? 02: u8 ?? 03: u8 colour 04: u16 vertex 06: u8 size 07: u8 ?? [ / Sphere ] [ Textures ] 00: u8 x 01: u8 y 02: u8 w 03: u8 h [ / Textures ]
Information provided by: xesf