Hardware Skinning Support

- Supports GL, D3D9 & D3D11
- Extends vertex formats & shadergen to support blend indices and weights
- Adds basic support for using 4x3 matrices for shader constants
- Supports software fallback
This commit is contained in:
James Urquhart 2015-01-10 19:41:25 +00:00
parent 507c239a87
commit 3496c549b5
72 changed files with 2533 additions and 1327 deletions

View file

@ -35,7 +35,7 @@ class SceneRenderState;
class GFXCubemap;
class Frustum;
class LightQuery;
class TSShape;
/// A simple class for passing render state through the pre-render pipeline.
///
@ -109,6 +109,12 @@ protected:
// volume. This is passed down per-object.
GFXTextureObject* mAccuTex;
/// List of matrices to use for hardware skinning
MatrixF *mNodeTransforms;
/// Count of matrices in the mNodeTransforms list
U32 mNodeTransformCount;
public:
@ -159,6 +165,10 @@ public:
void setAccuTex( GFXTextureObject* query ) { mAccuTex = query; }
GFXTextureObject* getAccuTex() const { return mAccuTex; }
///@ see mNodeTransforms, mNodeTransformCount
void setNodeTransforms(MatrixF *list, U32 count) { mNodeTransforms = list; mNodeTransformCount = count; }
void getNodeTransforms(MatrixF **list, U32 *count) const { *list = mNodeTransforms; *count = mNodeTransformCount; }
/// @}
};