Shader Technique
ShaderTechnique | |||
---|---|---|---|
Type ID | 0x32 | ||
Category | Generic | ||
Memory distribution |
Main Memory only | ||
Imports | Shader Program Buffer | ||
Imported by | Material Technique | ||
Editor available? |
No |
The Shader Technique resource type is the primary shader type in Burnout Paradise. It is used in conjunction with the Shader Program Buffer type, which holds precompiled shaders.
Development Information on versions of the Shader Technique resource type used during development. |
This type is only used on PlayStation 3 and Xbox 360. In the original PC game and Remastered, it is replaced by the Shader resource type.
Structures
CgsGraphics::ShaderTechnique
Offset | Length | Type | Name | Description | Comments |
---|---|---|---|---|---|
0x0 | 0x4 | ProgramBuffer* | mpVertexProgramBuffer | Imported vertex shader resource | |
0x4 | 0x4 | ProgramBuffer* | mpPixelProgramBuffer | Imported pixel shader resource | |
0x8 | 0x14 | ShaderConstantsInternal | mInternalVertexShaderConstants | ||
0x1C | 0x10 | ShaderConstantsExternal | mExternalObjectVertexShaderConstants | ||
0x2C | 0x10 | ShaderConstantsExternal | mExternalGlobalVertexShaderConstants | ||
0x3C | 0x14 | ShaderConstantsInternal | mInternalPixelShaderConstants | ||
0x50 | 0x10 | ShaderConstantsExternal | mExternalObjectPixelShaderConstants | ||
0x60 | 0x10 | ShaderConstantsExternal | mExternalGlobalPixelShaderConstants | ||
0x70 | 0x10 | ShaderConstantsCPU | mCPUShaderConstants | Unused? | |
0x80 | 0xC | ShaderConstantHashTable | mShaderConstantHashTable | ||
0x8C | 0x4 | ShaderSampler* | mpaSamplers | ||
0x90 | 0x1 | int8_t | miNumSamplers | ||
0x91 | 0x3 | Padding | |||
0x94 | 0x4 | char* | mpacName |
ShaderConstantsInternal
Offset | Length | Type | Name | Description | Comments |
---|---|---|---|---|---|
0x0 | 0x4 | uint32_t | muNumConstantsInstances | Number of instances | Applies to size, data and hashes |
0x4 | 0x4 | uint32_t* | mpauConstantsInstanceSize | Per-instance data size | |
0x8 | 0x4 | uint32_t** | mppaConstantsInstanceData | Instance data | Instance data is actually float[4] |
0xC | 0x4 | uint32_t* | mpauNamesHash | Array of hashes of the names of constants | CRC32? |
0x10 | 0x4 | ProgramVariableHandle* | mpaProgramStateHandles |
renderengine::ProgramVariableHandle
Offset | Length | Type | Name | Description | Comments |
---|---|---|---|---|---|
0x0 | 0x4 | ProgramBuffer* | m_programBuffer | Set at runtime | |
0x4 | 0x2 | uint16_t | m_index | ||
0x6 | 0x1 | uint8_t | m_numConstants | If 4, all floats in instance data used? | |
0x7 | 0x1 | uint8_t | m_dataFlags | See flags. Lower 3 bits form the data type. |
ShaderConstantsExternal
Offset | Length | Type | Name | Description | Comments |
---|---|---|---|---|---|
0x0 | 0x4 | uint32_t | muNumConstantsInstances | Number of instances | Applies to data and names |
0x4 | 0x4 | uint32_t* | mppaConstantsInstanceData | Instance data | |
0x8 | 0x4 | char** | mppacNames | Names of constants | 16 bytes reserved for chars |
0xC | 0x4 | ProgramVariableHandle* | mpaProgramStateHandles | Can be padding |
ShaderConstantsCPU
Offset | Length | Type | Name | Description | Comments |
---|---|---|---|---|---|
0x0 | 0x4 | ICPUShader* | mpCPUShader | Set at runtime | |
0x4 | 0x4 | uint32_t | muNumConstantsInstances | ||
0x8 | 0x4 | uint32_t** | mppaConstantsInstanceData | ||
0xC | 0x4 | char** | mppacNames |
CgsGraphics::ShaderConstantHashTable
Offset | Length | Type | Name | Description | Comments |
---|---|---|---|---|---|
0x0 | 0x4 | uint32_t* | mpuHashKeys | Constant names hashed | CRC32? |
0x4 | 0x4 | char** | mppcNames | ||
0x8 | 0x4 | uint32_t | muSize | Number of entries |
CgsGraphics::ShaderSampler
Offset | Length | Type | Name | Description | Comments |
---|---|---|---|---|---|
0x0 | 0x4 | char* | mpacName | Sampler name | |
0x4 | 0x2 | int16_t | miChannel | ||
0x6 | 0x2 | Padding |
Enumerations
Handle flags
Name | Value | Comments |
---|---|---|
FLAGS_FLOAT | 0x1 | Data type flag |
FLAGS_SAMPLER | 0x2 | Data type flag |
FLAGS_BOOL | 0x4 | Data type flag |
FLAGS_VERTEXPROGRAM | 0x80 |