Difference between revisions of "Skin PLG (RW Section)"

From GTAMods Wiki
Jump to navigation Jump to search
m (Minor layout improvement.)
m (Added detailed data types.)
Line 3: Line 3:
 
Skin is an additional RenderWare plugin for [[Geometry (RW Section)|geometry]] section. It is used to hold information about skinned model.
 
Skin is an additional RenderWare plugin for [[Geometry (RW Section)|geometry]] section. It is used to hold information about skinned model.
 
==Structure==
 
==Structure==
  BYTE            numBones (numMatrices)
+
  UINT8  numBones (numMatrices)
  BYTE            numUsedBones
+
  UINT8  numUsedBones
  WORD            maxWeightsPerVertex
+
  UINT8  maxWeightsPerVertex
  BYTE            bonesUsed[numUsedBones]
+
  UINT8 
  BYTE            vertexBoneIndices[geometry->numVertices][4]
+
UINT8  bonesUsed[numUsedBones]
  FLOAT           vertexBoneWeights[geometry->numVertices][4]
+
  UINT8  vertexBoneIndices[geometry->numVertices][4]
  FLOAT           skinToBoneMatrices[numMatrices][4][4]
+
  FLOAT   vertexBoneWeights[geometry->numVertices][4]
 +
  FLOAT   skinToBoneMatrices[numMatrices][4][4]
 
  // Split data
 
  // Split data
  DWORD          boneLimit
+
  UINT32  boneLimit
  DWORD          numMeshes
+
  UINT32  numMeshes
  DWORD          numRLE  
+
  UINT32  numRLE  
 
  // if numMeshes > 0
 
  // if numMeshes > 0
  BYTE            meshBoneRemapIndices[numBones]
+
  UINT8  meshBoneRemapIndices[numBones]
  WORD            meshBoneRLECount[numMeshes]
+
  UINT16  meshBoneRLECount[numMeshes]
  WORD            meshBoneRLE[numRLE]
+
  UINT16  meshBoneRLE[numRLE]
 
;numBones (numMatrices)
 
;numBones (numMatrices)
 
:Number of bones attached to the skin, also the number of inverse matrices (see '''skinToBoneMatrices''').
 
:Number of bones attached to the skin, also the number of inverse matrices (see '''skinToBoneMatrices''').

Revision as of 22:26, 20 June 2015

{{{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

UINT8   numBones (numMatrices)
UINT8   numUsedBones
UINT8   maxWeightsPerVertex
UINT8   
UINT8   bonesUsed[numUsedBones]
UINT8   vertexBoneIndices[geometry->numVertices][4]
FLOAT   vertexBoneWeights[geometry->numVertices][4]
FLOAT   skinToBoneMatrices[numMatrices][4][4]
// Split data
UINT32  boneLimit
UINT32  numMeshes
UINT32  numRLE 
// if numMeshes > 0
UINT8   meshBoneRemapIndices[numBones]
UINT16  meshBoneRLECount[numMeshes]
UINT16  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