Vehicle Graphics: Difference between revisions

From Burnout Wiki
Content added Content deleted
(Minor clarification)
(Conform to format documentation guidelines.)
Line 1: Line 1:
{{subpage|Development|text=Information on development versions of the Vehicle Graphics resource.}}
The Graphics resource is the central part of vehicle graphics bundles, superseded only by the [[GraphicsStub]] resource in the event a GraphicsStub exists. Its primary purpose is to import [[Model (Burnout Paradise)|Model]] resources and set them up as vehicle parts.

The Graphics resource is the central part of vehicle graphics bundles, superseded only by the [[GraphicsStub]] resource in the event a GraphicsStub exists. Its primary purpose is to import [[Model (Burnout Paradise) | Model]] resources and set them up as vehicle parts.


Although the version number remains <code>3</code> in all known variants of the resource, it was updated at least once between February and October 2007.
Although the version number remains <code>3</code> in all known variants of the resource, it was updated at least once between February and October 2007.


= Layout =
= Structures =
== Final (32-bit) ==
== 32-bit ==
=== GraphicsSpec ===
=== BrnVehicle::GraphicsSpec ===
{| class="wikitable"
{| class="wikitable"
|-
|-
Line 14: Line 16:
| 0x4 || 0x4 || uint32_t || muPartsCount || ||
| 0x4 || 0x4 || uint32_t || muPartsCount || ||
|-
|-
| 0x8 || 0x4 || Model** || mppPartsModels || Imports indices || 8-bit integers aligned 4
| 0x8 || 0x4 || [[Model (Burnout Paradise) | Model]]** || mppPartsModels || Imports indices || 8-bit integers aligned 4
|-
|-
| 0xC || 0x4 || uint32_t || muShatteredGlassPartsCount || ||
| 0xC || 0x4 || uint32_t || muShatteredGlassPartsCount || ||
|-
|-
| 0x10 || 0x4 || ShatteredGlassPart* || mpShatteredGlassParts || Imports indices ||
| 0x10 || 0x4 || [[#BrnVehicle::ShatteredGlassPart | ShatteredGlassPart]]* || mpShatteredGlassParts || Imports indices ||
|-
|-
| 0x14 || 0x4 || Matrix44Affine* || mpPartLocators || ||
| 0x14 || 0x4 || [[Common Data Types (Burnout Paradise)#Matrix44Affine | Matrix44Affine]]* || mpPartLocators || ||
|-
|-
| 0x18 || 0x4 || uint8_t* || mpPartVolumeIDs || ||
| 0x18 || 0x4 || uint8_t* || mpPartVolumeIDs || ||
Line 26: Line 28:
| 0x1C || 0x4 || uint8_t* || mpNumRigidBodiesForPart || ||
| 0x1C || 0x4 || uint8_t* || mpNumRigidBodiesForPart || ||
|-
|-
| 0x20 || 0x4 || Matrix44Affine** || mppRigidBodyToSkinMatrixTransforms || ||
| 0x20 || 0x4 || [[Common Data Types (Burnout Paradise)#Matrix44Affine | Matrix44Affine]]** || mppRigidBodyToSkinMatrixTransforms || ||
|}
|}


=== ShatteredGlassPart ===
=== BrnVehicle::ShatteredGlassPart ===
{| class="wikitable"
{| class="wikitable"
|-
|-
! Offset !! Length !! Type !! Name !! Description !! Comments
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
|-
| 0x0 || 0x4 || Model* || mpModel || ||
| 0x0 || 0x4 || [[Model (Burnout Paradise) | Model]]* || mpModel || ||
|-
|-
| 0x4 || 0x4 || uint32_t || muBodyPartIndex || ||
| 0x4 || 0x4 || uint32_t || muBodyPartIndex || ||
Line 41: Line 43:
|}
|}


== Final (64-bit) ==
== 64-bit ==
=== GraphicsSpec ===
=== BrnVehicle::GraphicsSpec ===
{| class="wikitable"
{| class="wikitable"
|-
|-
Line 51: Line 53:
| 0x4 || 0x4 || uint32_t || muPartsCount || ||
| 0x4 || 0x4 || uint32_t || muPartsCount || ||
|-
|-
| 0x8 || 0x8 || Model** || mppPartsModels || Imports indices || 8-bit integers aligned 8
| 0x8 || 0x8 || [[Model (Burnout Paradise) | Model]]** || mppPartsModels || Imports indices || 8-bit integers aligned 8
|-
|-
| 0x10 || 0x4 || uint32_t || muShatteredGlassPartsCount || ||
| 0x10 || 0x4 || uint32_t || muShatteredGlassPartsCount || ||
Line 57: Line 59:
| 0x14 || 0x4 || || || padding ||
| 0x14 || 0x4 || || || padding ||
|-
|-
| 0x18 || 0x8 || ShatteredGlassPart* || mpShatteredGlassParts || Imports indices ||
| 0x18 || 0x8 || [[#BrnVehicle::ShatteredGlassPart 2 | ShatteredGlassPart]]* || mpShatteredGlassParts || Imports indices ||
|-
|-
| 0x20 || 0x8 || Matrix44Affine* || mpPartLocators || ||
| 0x20 || 0x8 || [[Common Data Types (Burnout Paradise)#Matrix44Affine | Matrix44Affine]]* || mpPartLocators || ||
|-
|-
| 0x28 || 0x8 || uint8_t* || mpPartVolumeIDs || ||
| 0x28 || 0x8 || uint8_t* || mpPartVolumeIDs || ||
Line 65: Line 67:
| 0x30 || 0x8 || uint8_t* || mpNumRigidBodiesForPart || ||
| 0x30 || 0x8 || uint8_t* || mpNumRigidBodiesForPart || ||
|-
|-
| 0x38 || 0x8 || Matrix44Affine** || mppRigidBodyToSkinMatrixTransforms || ||
| 0x38 || 0x8 || [[Common Data Types (Burnout Paradise)#Matrix44Affine | Matrix44Affine]]** || mppRigidBodyToSkinMatrixTransforms || ||
|}
|}


=== ShatteredGlassPart ===
=== BrnVehicle::ShatteredGlassPart ===
{| class="wikitable"
{| class="wikitable"
|-
|-
! Offset !! Length !! Type !! Name !! Description !! Comments
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
|-
| 0x0 || 0x8 || Model* || mpModel || ||
| 0x0 || 0x8 || [[Model (Burnout Paradise) | Model]]* || mpModel || ||
|-
|-
| 0x8 || 0x4 || uint32_t || muBodyPartIndex || ||
| 0x8 || 0x4 || uint32_t || muBodyPartIndex || ||
|-
|-
| 0xC || 0x4 || uint32_t || muBodyPartType || ||
| 0xC || 0x4 || uint32_t || muBodyPartType || ||
|}

== 2006-11-13, 2007-02-22 ==
=== GraphicsSpec ===
{| class="wikitable"
|-
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
| 0x0 || 0x4 || uint32_t || muVersion || Spec version || 3
|-
| 0x4 || 0x4 || uint32_t || muPartsCount || ||
|-
| 0x8 || 0x4 || Model** || mppPartsModels || Imports indices || 8-bit integers aligned 4
|-
| 0xC || 0x4 || Matrix44Affine* || mpPartLocators || ||
|-
| 0x10 || 0x4 || uint8_t* || mpPartVolumeIDs || ||
|-
| 0x14 || 0x4 || uint8_t* || mpNumRigidBodiesForPart || ||
|-
| 0x18 || 0x4 || Matrix44Affine** || mppRigidBodyToSkinMatrixTransforms || ||
|}
|}

Revision as of 05:40, 14 August 2022

Development
Information on development versions of the Vehicle Graphics resource.

The Graphics resource is the central part of vehicle graphics bundles, superseded only by the GraphicsStub resource in the event a GraphicsStub exists. Its primary purpose is to import Model resources and set them up as vehicle parts.

Although the version number remains 3 in all known variants of the resource, it was updated at least once between February and October 2007.

Structures

32-bit

BrnVehicle::GraphicsSpec

Offset Length Type Name Description Comments
0x0 0x4 uint32_t muVersion Spec version 3
0x4 0x4 uint32_t muPartsCount
0x8 0x4 Model** mppPartsModels Imports indices 8-bit integers aligned 4
0xC 0x4 uint32_t muShatteredGlassPartsCount
0x10 0x4 ShatteredGlassPart* mpShatteredGlassParts Imports indices
0x14 0x4 Matrix44Affine* mpPartLocators
0x18 0x4 uint8_t* mpPartVolumeIDs
0x1C 0x4 uint8_t* mpNumRigidBodiesForPart
0x20 0x4 Matrix44Affine** mppRigidBodyToSkinMatrixTransforms

BrnVehicle::ShatteredGlassPart

Offset Length Type Name Description Comments
0x0 0x4 Model* mpModel
0x4 0x4 uint32_t muBodyPartIndex
0x8 0x4 uint32_t muBodyPartType

64-bit

BrnVehicle::GraphicsSpec

Offset Length Type Name Description Comments
0x0 0x4 uint32_t muVersion Spec version 3
0x4 0x4 uint32_t muPartsCount
0x8 0x8 Model** mppPartsModels Imports indices 8-bit integers aligned 8
0x10 0x4 uint32_t muShatteredGlassPartsCount
0x14 0x4 padding
0x18 0x8 ShatteredGlassPart* mpShatteredGlassParts Imports indices
0x20 0x8 Matrix44Affine* mpPartLocators
0x28 0x8 uint8_t* mpPartVolumeIDs
0x30 0x8 uint8_t* mpNumRigidBodiesForPart
0x38 0x8 Matrix44Affine** mppRigidBodyToSkinMatrixTransforms

BrnVehicle::ShatteredGlassPart

Offset Length Type Name Description Comments
0x0 0x8 Model* mpModel
0x8 0x4 uint32_t muBodyPartIndex
0xC 0x4 uint32_t muBodyPartType