Vehicle Data: Difference between revisions
(Use month abbreviations) |
AcuteSyntax (talk | contribs) No edit summary |
||
Line 2: | Line 2: | ||
This format contains most of the data related to any given vehicle, including mesh data, Level of Detail models, texture data, pointers to external files, deformation matrices, collision detection parameters and physics configuration info. |
This format contains most of the data related to any given vehicle, including mesh data, Level of Detail models, texture data, pointers to external files, deformation matrices, collision detection parameters and physics configuration info. |
||
= Versions = |
= Versions = |
||
{| class="wikitable" |
{| class="wikitable" |
||
Line 21: | Line 22: | ||
* Version 0x1D and onward store deformation matrices in a different order to previous revisions. |
* Version 0x1D and onward store deformation matrices in a different order to previous revisions. |
||
= Subtypes = |
|||
All currently known offsets for revision 0x17 can be found [https://docs.google.com/spreadsheets/d/1t0ZpOjCC9_2RJfcgQ8NLD8oJZfoZmpxxHEnNF5AN2Wo here]. |
|||
== LOD Database == |
|||
The '''LOD Database''' format stores both a given vehicle's LOD model as well as the model's rendering parameters. |
|||
= LOD database format = |
|||
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 0), low (LOD 1), medium (LOD 2) and high (LOD 3) quality. |
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 0), low (LOD 1), medium (LOD 2) and high (LOD 3) quality. |
||
It seems the maximum amount of submeshes a LOD Database can contain is 12, though it's unknown if this rule is enforced by the game or if it can be larger than that. |
|||
=== Layout === |
|||
{|class="wikitable" |
|||
|- |
|||
! Offset |
|||
! Type |
|||
! Description |
|||
|- |
|||
| 0x00 || Submesh* || Submesh offset(s) |
|||
|} |
|||
= Layout = |
= Layout = |
||
=== Version 0x17 === |
|||
{|class="wikitable |
|||
|- |
|||
! Offset |
|||
! Name |
|||
! Type |
|||
! Value |
|||
! Notes |
|||
|- |
|||
| 0x00 || Version number || RwUInt32 || 0x17 || |
|||
|- |
|||
| 0x08 || File size in bytes || RwInt32 || || |
|||
|- |
|||
| 0x0C || Bodypart count || RwInt8 || || |
|||
|- |
|||
| 0x0D || Wheel count || RwInt8 || || |
|||
|- |
|||
| 0x0F || Minimum LOD || RwInt16 || || |
|||
|- |
|||
| 0x10 || Maximum LOD || RwInt16 || || |
|||
|- |
|||
| 0x14 || Global X Coordinate || RwReal || || |
|||
|- |
|||
| 0x18 || Global Y Coordinate || RwReal || || |
|||
|- |
|||
| 0x4C || LOD database offset(s) || CB4VehicleLODData*[5] || || |
|||
|- |
|||
| 0x60 || Vehicle texture offset || CGtTexture* || |
|||
|- |
|||
| ... || || || ||<!-- TODO: The rest of it --> |
|||
|} |
|||
=== Version 0x1F === |
=== Version 0x1F === |
||
{|class="wikitable |
{|class="wikitable |
||
Line 39: | Line 82: | ||
! Notes |
! Notes |
||
|- |
|- |
||
| 0x00 || mxVersionNumber || RwUInt32 || |
| 0x00 || mxVersionNumber || RwUInt32 || 0x1F || |
||
|- |
|- |
||
| 0x04 || mxLoadedState || RwInt32 || 0x00 || |
| 0x04 || mxLoadedState || RwInt32 || 0x00 || |
||
Line 57: | Line 100: | ||
| 0x14 || marWheelScales || RwReal[6] || || |
| 0x14 || marWheelScales || RwReal[6] || || |
||
|- |
|- |
||
| 0x2C || marBodyPartRadii|| RwReal[8] || || |
| 0x2C || marBodyPartRadii || RwReal[8] || || |
||
|- |
|||
| 0x4C || marBodyPartRadii || CB4VehicleLODData*[5] || || |
|||
|- |
|- |
||
| |
| 0x60 || mpTexture || CGtTexture* || || |
||
|- |
|- |
||
| ... || || || ||<!-- TODO: The rest of it --> |
| ... || || || ||<!-- TODO: The rest of it --> |
Revision as of 21:22, 20 January 2021
The Burnout Vehicle file format is used to store data for a particular vehicle in all Burnout games from Takedown to Dominator. It uses the file extension .bgv, or .btv for traffic vehicles. It is the successor to Point of Impact's Burnout 2 Race Car file format.
This format contains most of the data related to any given vehicle, including mesh data, Level of Detail models, texture data, pointers to external files, deformation matrices, collision detection parameters and physics configuration info.
Versions
Burnout Vehicle version | |||||
---|---|---|---|---|---|
0x14 | 0x17 | 0x1D | 0x1F | 0x25 | |
Date | Apr 2004 | Jul 2004 | May 2005 | Jul 2005 | Jan 2006 |
Games | Takedown (Early Demo) | Takedown Legends Dominator (PSP) |
Revenge (2005, Early Demo) | Revenge (2005) Dominator (PS2) |
Revenge (360) |
Body parts | |||||
Max body parts | 6 | 6 | 8 | 8 | 8 |
- 0x14 BGVs are the only version to use global pointers for their LOD database submesh lists. These point to the exact location in the file of each submesh, whereas local pointers, used by 0x17 and up, use offsets relative to the beginning of the LOD. For example, a pointer to offset 0x1820 in a 0x14 BGV would appear to point to 0x140 in all other revisions.
- Version 0x1D and onward store deformation matrices in a different order to previous revisions.
Subtypes
LOD Database
The LOD Database format stores both a given vehicle's LOD model as well as the model's rendering parameters.
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 0), low (LOD 1), medium (LOD 2) and high (LOD 3) quality.
It seems the maximum amount of submeshes a LOD Database can contain is 12, though it's unknown if this rule is enforced by the game or if it can be larger than that.
Layout
Offset | Type | Description |
---|---|---|
0x00 | Submesh* | Submesh offset(s) |
Layout
Version 0x17
Offset | Name | Type | Value | Notes |
---|---|---|---|---|
0x00 | Version number | RwUInt32 | 0x17 | |
0x08 | File size in bytes | RwInt32 | ||
0x0C | Bodypart count | RwInt8 | ||
0x0D | Wheel count | RwInt8 | ||
0x0F | Minimum LOD | RwInt16 | ||
0x10 | Maximum LOD | RwInt16 | ||
0x14 | Global X Coordinate | RwReal | ||
0x18 | Global Y Coordinate | RwReal | ||
0x4C | LOD database offset(s) | CB4VehicleLODData*[5] | ||
0x60 | Vehicle texture offset | CGtTexture* | ||
... |
Version 0x1F
Offset | Name | Type | Value | Notes |
---|---|---|---|---|
0x00 | mxVersionNumber | RwUInt32 | 0x1F | |
0x04 | mxLoadedState | RwInt32 | 0x00 | |
0x08 | mn8NumBodyParts | RwInt8 | ||
0x09 | mn8NumWheels | RwInt8 | ||
0x0A | mn8MinLOD | RwInt8 | ||
0x0B | mn8MaxLOD | RwInt8 | ||
0x0C | mrObjectRadius | RwReal | ||
0x10 | mrWheelRadius | RwReal | ||
0x14 | marWheelScales | RwReal[6] | ||
0x2C | marBodyPartRadii | RwReal[8] | ||
0x4C | marBodyPartRadii | CB4VehicleLODData*[5] | ||
0x60 | mpTexture | CGtTexture* | ||
... |