Renderable/PC

From Burnout Wiki

Structures

Renderable

Offset Length Type Name Description Comments
0x0 0x10 Vector3Plus mBoundingSphere
0x10 0x2 uint16_t mu16VersionNumber Version 11
0x12 0x2 uint16_t mu16NumMeshes Number of meshes
0x14 0x4 RenderableMesh** mppMeshes Meshes
0x18 0x4 ObjectScopeTextureInfo* mpObjectScopeTextureInfo Unused
0x1C 0x2 uint16_t mu16Flags Flags See flags
0x1E 0x2 Padding
0x20 0x4 IndexBuffer* ? Index buffer
0x24 0x4 VertexBuffer* ? Vertex buffer

RenderableMesh

Offset Length Type Name Description Comments
0x0 0x40 Matrix44 ? Bounding box
0x40 0x18 DrawIndexedParameters mDrawIndexedParameters
0x58 0x4 MaterialAssembly* mpMaterialAssembly
0x5C 0x1 uint8_t mu8NumVertexDescriptors Number of vertex descriptors
0x5D 0x1 uint8_t mu8InstanceCount
0x5E 0x1 uint8_t mu8NumVertexBuffers Number of vertex buffers
0x5F 0x1 uint8_t mu8Flags Flags Always 0?
0x60 0x4 void*[1] maBuffers Buffers Index buffers, then vertex buffers, then vertex descriptors.
See IndexBuffer and VertexBuffer

DrawIndexedParameters

Offset Length Type Name Description Comments
0x0 0x4 D3DPRIMITIVETYPE ? Primitive type
0x4 0x4 int32_t ? Base vertex index
0x8 0x4 uint32_t ? Start index
0xC 0x4 uint32_t ? Number of indices
0x10 0x4 uint32_t ? Minimum index
0x14 0x4 uint32_t ? Number of primitives

renderengine::IndexBuffer

Offset Length Type Name Description Comments
0x0 0x4 uint32_t ? Number of indices
0x4 0x4 ? ? Indices
0x8 0x4 ? ? Null in samples
0xC 0x4 uint32_t ? Flags?

renderengine::VertexBuffer

Offset Length Type Name Description Comments
0x0 0x4 uint32_t ? Vertices offset In secondary resource portion
0x4 0x4 ? ? Null in samples
0x8 0x4 uint32_t ? Buffer length
0xC 0x4 Padding

Enumerations

Renderable flags

Name Value Comments
? 0x1
? 0x2
? 0x4
? 0x8
? 0x10
? 0x20
? 0x40
? 0x80
? 0x100
? 0x200
? 0x400
? 0x800

D3DPRIMITIVETYPE

From the Microsoft Learn page.

Name Value Comments
D3DPT_POINTLIST 1 Renders the vertices as a collection of isolated points. This value is unsupported for indexed primitives.
D3DPT_LINELIST 2 Renders the vertices as a list of isolated straight line segments.
D3DPT_LINESTRIP 3 Renders the vertices as a single polyline.
D3DPT_TRIANGLELIST 4 Renders the specified vertices as a sequence of isolated triangles. Each group of three vertices defines a separate triangle.
Back-face culling is affected by the current winding-order render state.
D3DPT_TRIANGLESTRIP 5 Renders the vertices as a triangle strip. The backface-culling flag is automatically flipped on even-numbered triangles.
D3DPT_TRIANGLEFAN 6 Renders the vertices as a triangle fan.
D3DPT_FORCE_DWORD 0x7FFFFFFF Forces this enumeration to compile to 32 bits in size. Without this value, some compilers would allow this enumeration to compile to a size other than 32 bits. This value is not used.