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

@ -80,6 +80,9 @@ protected:
/// This is set by initialization and used by the prepass.
bool mHasNormalMaps;
/// This material makes use of bone transforms
bool mUsesHardwareSkinning;
public:
virtual ~BaseMatInstance();
@ -149,6 +152,9 @@ public:
/// @see setupPass
virtual void setTransforms( const MatrixSet &matrixSet, SceneRenderState *state ) = 0;
/// Sets node transforms for the current stage. Used for hardware skinning.
virtual void setNodeTransforms( const MatrixF *address, const U32 numTransforms ) = 0;
/// This initializes various material scene state settings and
/// should be called after setupPass() within the pass loop.
/// @see setupPass
@ -214,6 +220,8 @@ public:
/// Fast test for use of normal maps in this material.
bool hasNormalMap() const { return mHasNormalMaps; }
bool usesHardwareSkinning() const { return mUsesHardwareSkinning; }
///
MatFeaturesDelegate& getFeaturesDelegate() { return mFeaturesDelegate; }