Difference between revisions of "LBA2:3D model"

From LBA File Information
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 unknown2
48: u32 Number of lines
4C: u32 Offset to unknown2
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 unknown3
58: u32 Number of textures
5C: u32 Offset to unknown4
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: u64 ??
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 Number of polygons
02: u16 colour
04: u16 Size of data
04: u16 vertex1
06: u16 ??
06: u16 vertex2
Read (size - 8) * (number of polygons)
That data contains polygons and colour information
[ / Polygon ]
 
[ Unknown2 ]
00: u64 ??
[ / Unknown2 ]
[ / Unknown2 ]


[ Sphere ]
[ Sphere ]
00: u64 ??
00: u16 ??
02: u8 ??
03: u8 colour
04: u16 vertex
06: u8 size
07: u8 ??
[ / Sphere ]
[ / Sphere ]


[ Unknown3 ]
[ Textures ]
00: u32 ??
00: u8 x
[ / Unknown3 ]
01: u8 y
02: u8 w
03: u8 h
[ / Textures ]
</pre>
</pre>
{{providers|[[provider::alexfont]]}}
{{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

Find entries of this type

LM2 files contain 3D models used for Actors and other objects in LBA2.

Specification[edit]

[ 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