Difference between revisions of "LBA2:3D model"
Jump to navigation
Jump to search
[checked revision] | [checked revision] |
(7 intermediate revisions by 4 users not shown) | |||
Line 12: | Line 12: | ||
<pre> | <pre> | ||
[ Header ] | [ Header ] | ||
00: | 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 | 20: u32 Number of bones | ||
24: u32 Offset to bones | 24: u32 Offset to bones | ||
Line 23: | Line 29: | ||
40: u32 Number of polygons | 40: u32 Number of polygons | ||
44: u32 Offset to polygons | 44: u32 Offset to polygons | ||
48: u32 Number of | 48: u32 Number of lines | ||
4C: u32 Offset to | 4C: u32 Offset to lines | ||
50: u32 Number of spheres | 50: u32 Number of spheres | ||
54: u32 Offset to spheres | 54: u32 Offset to spheres | ||
58: u32 Number of | 58: u32 Number of textures | ||
5C: u32 Offset to | 5C: u32 Offset to textures | ||
[ / Header ] | [ / Header ] | ||
Line 43: | Line 49: | ||
04: s16 z | 04: s16 z | ||
06: u16 Bone | 06: u16 Bone | ||
Vertex position is relative to its bone position. | |||
And each bone position itself is relative to its parent bone position | |||
[ / Vertex ] | [ / Vertex ] | ||
Line 53: | Line 61: | ||
[ Unknown1 ] | [ Unknown1 ] | ||
00: | 00: u16 ?? | ||
02: u16 ?? | |||
04: u16 ?? | |||
06: u16 ?? | |||
[ / Unknown1 ] | [ / Unknown1 ] | ||
[ Polygon ] | [ 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 ?? | 00: u16 ?? | ||
02: u16 | 02: u16 colour | ||
04: u16 | 04: u16 vertex1 | ||
06: u16 | 06: u16 vertex2 | ||
[ / Unknown2 ] | [ / Unknown2 ] | ||
[ Sphere ] | [ Sphere ] | ||
00: | 00: u16 ?? | ||
02: u8 ?? | |||
03: u8 colour | |||
04: u16 vertex | |||
06: u8 size | |||
07: u8 ?? | |||
[ / Sphere ] | [ / Sphere ] | ||
[ | [ Textures ] | ||
00: | 00: u8 x | ||
[ / | 01: u8 y | ||
02: u8 w | |||
03: u8 h | |||
[ / Textures ] | |||
</pre> | </pre> | ||
{{providers|[[provider:: | {{providers|[[provider::xesf]]}} |
Latest revision as of 10: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