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

@ -65,12 +65,14 @@ public:
virtual MaterialParameterHandle* getMaterialParameterHandle(const String& name);
virtual bool setupPass(SceneRenderState *, const SceneData &sgData );
virtual void setTransforms(const MatrixSet &matrixSet, SceneRenderState *state);
virtual void setNodeTransforms(const MatrixF *address, const U32 numTransforms);
virtual void setSceneInfo(SceneRenderState *, const SceneData& sgData);
virtual void setTextureStages(SceneRenderState * state, const SceneData &sgData );
virtual void setBuffers(GFXVertexBufferHandleBase* vertBuffer, GFXPrimitiveBufferHandle* primBuffer);
virtual bool isInstanced() const;
virtual bool stepInstance();
virtual bool isForwardLit() const { return mIsForwardLit; }
virtual bool isHardwareSkinned() const { return mIsHardwareSkinned; }
virtual void setUserObject( SimObject *userObject ) { mUserObject = userObject; }
virtual SimObject* getUserObject() const { return mUserObject; }
virtual Material *getMaterial() { return mMaterial; }
@ -113,6 +115,9 @@ protected:
/// If the processed material requires forward lighting or not.
bool mIsForwardLit;
/// If the processed material requires bone transforms
bool mIsHardwareSkinned;
S32 mCurPass;
U32 mMaxStages;