The LOD Database format stores a given vehicle's LOD model.
LODs, or Levels of Detail, are lower-poly, lower-detail (hence the name) models that games use for objects that are far away from the player, to keep framerates smooth. BGVs contain 4 LOD Databases, which in turn each contain one LOD model of minimum (LOD 3), low (LOD 2), medium (LOD 1) and high (LOD 0) quality.
It seems a LOD Database can contain a maximum of 12 vehicle objects, though it's unknown if this rule is enforced by the game or if it can be larger than that.
The format for a Vehicle Mesh definition differs by platform.
PS2
Offset
Length
Type
Name
Description
Comments
0x0
0x4
RwUInt8*
mpRenderDataFirst
Render data (first)
0x4
0x4
RwUInt8*
mpRenderDataRest
Render data (rest)
0x8
0x2
RwUInt16
mx16MeshFlags
Mesh flags
TODO: List flags
0xA
0x1
RwUInt8
mu8Alpha1
Alpha1
0xB
0x1
RwUInt8
mu8TextureIndex
Texture index
0xC
0x1
RwUInt8
mu8SourceOpacity
Source opacity
0xD
0x1
RwUInt8
mu8CurrentOpacity
Current opacity
0xE
0x1
RwUInt8
mu8Shininess
Shininess
0xF
0x1
RwUInt8
mu8UNUSED
Unused
Xbox
Offset
Length
Type
Name
Description
Comments
0x0
0x4
RwReal
?
0x4
0x4
RwReal
?
0x8
0x4
RwReal
?
0xC
0x4
RwInt8*
?
Render data
0x10
0x4
RwUInt32
?
Render data size
0x14
0x4
RwUInt32
?
0x18
0x1
RwUInt8
?
0x19
0x1
RwUInt8
?
0x1A
0x1
RwUInt8
?
0x1B
0x1
RwUInt8
?
CGtTexture
To do: List texture structure.
CB3ConvexVehicleHull
To do: List hull structure.
CB3VehicleTag
To do: List vehicle tag point structure.
CB3VehiclePayloadSet
To do: List payload set structure.
CB3VehiclePayload
To do: List payload structure.
CB3SoundESMStruct
To do: List ESM structure.
This format contains playback parameters and pitching info for a given vehicle's engine sound effects, stored mostly as floating-point numbers. BGVs use two of these files for high and low speed ranges. The files were merged into the BGV starting with revision 0x17; prior to this, they were stored externally in the same folder as the BGV, with the file extensions .HSM and .LSM.
Enumerations
EBoneRigType
Name
Value
Comments
eNormalBoneRig
0
Normal bone rig
eLargeBoneRig
1
Large bone rig
eNoBoneRig
2
No bone rig
EBodyPartType
To do: Update with correct information: goes up to at least 5