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

From GTAMods Wiki
Jump to navigation Jump to search
m (Updated outdated information.)
m (Minor layout improvement.)
Line 7: Line 7:
 
  WORD            maxWeightsPerVertex
 
  WORD            maxWeightsPerVertex
 
  BYTE            bonesUsed[numUsedBones]
 
  BYTE            bonesUsed[numUsedBones]
  BYTE            vertexBoneIndices[numVertices][4]
+
  BYTE            vertexBoneIndices[geometry->numVertices][4]
  FLOAT          vertexBoneWeights[numVertices][4]
+
  FLOAT          vertexBoneWeights[geometry->numVertices][4]
 
  FLOAT          skinToBoneMatrices[numMatrices][4][4]
 
  FLOAT          skinToBoneMatrices[numMatrices][4][4]
  // Split Data
+
  // Split data
 
  DWORD          boneLimit
 
  DWORD          boneLimit
 
  DWORD          numMeshes
 
  DWORD          numMeshes
Line 18: Line 18:
 
  WORD            meshBoneRLECount[numMeshes]
 
  WORD            meshBoneRLECount[numMeshes]
 
  WORD            meshBoneRLE[numRLE]
 
  WORD            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''').
+
;numUsedBones
 +
:Number of bones which influence vertices, that is those bones which have at least a non-zero weight.
  
'''numUsedBones'''
+
;maxWeightsPerVertex
 +
:Overall number of maximum non-zero weights per vertex.
  
Number of bones which influence vertices, that is those bones which have at least a non-zero weight.
+
;bonesUsed
 +
:Indices list of the significant bones connected to the skin (see '''numUsedBones''').
  
'''maxWeightsPerVertex'''
+
;vertexBoneIndices
 +
:Vertex bone indices are represented with 4 bone indices per each vertex.
  
Overall number of maximum non-zero weights per vertex.
+
;vertexBoneWeights
 +
:Vertex bone weights are represented with ''RwMatrixWeights'' structure per each vertex.
  
'''bonesUsed'''
+
;skinToBoneMatrices
 +
:These are inverse matrices represented with ''RwMatrix'' structure.
  
Indices list of the significant bones connected to the skin (see '''numUsedBones''').
+
;boneLimit
  
'''vertexBoneIndices'''
+
;numMeshes
  
Vertex bone indices are represented with 4 bone indices per each vertex.
+
;numRLE
  
'''vertexBoneWeights'''
+
;meshBoneRemapIndices
  
Vertex bone weights are represented with RwMatrixWeights structure per each vertex.
+
;meshBoneRLECount
  
'''skinToBoneMatrices'''
+
;meshBoneRLE
 
 
These are inverse matrices represented with RwMatrix structure.
 
 
 
'''boneLimit'''
 
 
 
'''numMeshes'''
 
 
 
'''numRLE'''
 
 
 
'''meshBoneRemapIndices'''
 
 
 
'''meshBoneRLECount'''
 
 
 
'''meshBoneRLE'''
 

Revision as of 21:45, 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

BYTE            numBones (numMatrices)
BYTE            numUsedBones
WORD            maxWeightsPerVertex
BYTE            bonesUsed[numUsedBones]
BYTE            vertexBoneIndices[geometry->numVertices][4]
FLOAT           vertexBoneWeights[geometry->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