Skin PLG (RW Section)

From GTAMods Wiki
Revision as of 14:06, 20 June 2015 by Wesser (talk | contribs) (Updated outdated information.)
Jump to navigation Jump to search
{{{NAME}}}
RenderWare Stream Section
Vendor {{{VENDORNAME}}}
Module {{{MODULENAME}}}
Module ID 0x{{{MODULEID}}}
Identifier 0x{{{IDENTIFIER}}}
Chunk ID 0x{{{MODULEID}}}{{{IDENTIFIER}}}
Versions All
Hierarchy
Parents:
None
Children:
None
Extensions:
None
File Format

Skin is an additional RenderWare plugin for geometry section. It is used to hold information about skinned model.

Structure

BYTE            numBones (numMatrices)
BYTE            numUsedBones
WORD            maxWeightsPerVertex
BYTE            bonesUsed[numUsedBones]
BYTE            vertexBoneIndices[numVertices][4]
FLOAT           vertexBoneWeights[numVertices][4]
FLOAT           skinToBoneMatrices[numMatrices][4][4]
// Split Data
DWORD           boneLimit
DWORD           numMeshes
DWORD           numRLE 
// if numMeshes > 0
BYTE            meshBoneRemapIndices[numBones]
WORD            meshBoneRLECount[numMeshes]
WORD            meshBoneRLE[numRLE]

numBones (numMatrices)

Number of bones attached to the skin, also the number of inverse matrices (see skinToBoneMatrices).

numUsedBones

Number of bones which influence vertices, that is those bones which have at least a non-zero weight.

maxWeightsPerVertex

Overall number of maximum non-zero weights per vertex.

bonesUsed

Indices list of the significant bones connected to the skin (see numUsedBones).

vertexBoneIndices

Vertex bone indices are represented with 4 bone indices per each vertex.

vertexBoneWeights

Vertex bone weights are represented with RwMatrixWeights structure per each vertex.

skinToBoneMatrices

These are inverse matrices represented with RwMatrix structure.

boneLimit

numMeshes

numRLE

meshBoneRemapIndices

meshBoneRLECount

meshBoneRLE