Vehicle Graphics: Difference between revisions

From Burnout Wiki
Content added Content deleted
(Created page with "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...")
 
(Added other versions)
Line 1: Line 1:
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.
= Layout =
= Layout =
== Final (32-bit) ==
{| class="wikitable"
{| class="wikitable"
|+ GraphicsSpec
|+ GraphicsSpec
Line 6: Line 9:
! Offset !! Length !! Type !! Name !! Description !! Comments
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
|-
| 0x0 || 0x4 || uint32_t || muVersion || Spec version ||
| 0x0 || 0x4 || uint32_t || muVersion || Spec version || 3
|-
|-
| 0x4 || 0x4 || uint32_t || muPartsCount || ||
| 0x4 || 0x4 || uint32_t || muPartsCount || ||
|-
|-
| 0x8 || 0x4 || Model** || mppPartsModels || Model indices || Little endian indices on PS3/360?
| 0x8 || 0x4 || Model** || mppPartsModels || Model indices || 8-bit integers aligned 4
|-
|-
| 0xC || 0x4 || uint32_t || muShatteredGlassPartsCount || ||
| 0xC || 0x4 || uint32_t || muShatteredGlassPartsCount || ||
Line 34: Line 37:
|-
|-
| 0x8 || 0x4 || uint32_t || muBodyPartType || ||
| 0x8 || 0x4 || uint32_t || muBodyPartType || ||
|}
== Final (64-bit) ==
{| class="wikitable"
|+ GraphicsSpec
|-
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
| 0x0 || 0x4 || uint32_t || muVersion || Spec version || 3
|-
| 0x4 || 0x4 || uint32_t || muPartsCount || ||
|-
| 0x8 || 0x8 || Model** || mppPartsModels || Model indices || 8-bit integers aligned 8
|-
| 0x10 || 0x4 || uint32_t || muShatteredGlassPartsCount || ||
|-
| 0x14 || 0x4 || ? || ? || || Possibly garbage, always 0x7FF6
|-
| 0x18 || 0x8 || ShatteredGlassPart* || mpShatteredGlassParts || Shattered glass parts indices ||
|-
| 0x20 || 0x8 || Matrix44Affine* || mpPartLocators || ||
|-
| 0x28 || 0x8 || uint8_t* || mpPartVolumeIDs || ||
|-
| 0x30 || 0x8 || uint8_t* || mpNumRigidBodiesForPart || ||
|-
| 0x38 || 0x8 || Matrix44Affine** || mppRigidBodyToSkinMatrixTransforms || ||
|}
{| class="wikitable"
|+ ShatteredGlassPart
|-
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
| 0x0 || 0x8 || Model* || mpModel || ||
|-
| 0x8 || 0x4 || uint32_t || muBodyPartIndex || ||
|-
| 0xC || 0x4 || uint32_t || muBodyPartType || ||
|}
== 2006-11-13, 2007-02-22 ==
{| class="wikitable"
|+ GraphicsSpec
|-
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
| 0x0 || 0x4 || uint32_t || muVersion || Spec version || 3
|-
| 0x4 || 0x4 || uint32_t || muPartsCount || ||
|-
| 0x8 || 0x4 || Model** || mppPartsModels || Model 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 18:02, 17 January 2021

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.

Layout

Final (32-bit)

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

Final (64-bit)

GraphicsSpec
Offset Length Type Name Description Comments
0x0 0x4 uint32_t muVersion Spec version 3
0x4 0x4 uint32_t muPartsCount
0x8 0x8 Model** mppPartsModels Model indices 8-bit integers aligned 8
0x10 0x4 uint32_t muShatteredGlassPartsCount
0x14 0x4 ? ? Possibly garbage, always 0x7FF6
0x18 0x8 ShatteredGlassPart* mpShatteredGlassParts Shattered glass parts indices
0x20 0x8 Matrix44Affine* mpPartLocators
0x28 0x8 uint8_t* mpPartVolumeIDs
0x30 0x8 uint8_t* mpNumRigidBodiesForPart
0x38 0x8 Matrix44Affine** mppRigidBodyToSkinMatrixTransforms
ShatteredGlassPart
Offset Length Type Name Description Comments
0x0 0x8 Model* mpModel
0x8 0x4 uint32_t muBodyPartIndex
0xC 0x4 uint32_t muBodyPartType

2006-11-13, 2007-02-22

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