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

@ -113,6 +113,9 @@ const char* ShaderGenComponentFactoryGLSL::typeToString( GFXDeclType type )
case GFXDeclType_Float3:
return "vec3";
case GFXDeclType_UByte4:
return "vec4";
case GFXDeclType_Float4:
case GFXDeclType_Color:
return "vec4";
@ -160,6 +163,16 @@ ShaderComponent* ShaderGenComponentFactoryGLSL::createVertexInputConnector( cons
var = vertComp->getElement( RT_COLOR );
var->setName( "diffuse" );
}
else if (element.isSemantic(GFXSemantic::BLENDINDICES))
{
var = vertComp->getElement(RT_BLENDINDICES);
var->setName(String::ToString("vBlendIndex%d", element.getSemanticIndex()));
}
else if (element.isSemantic(GFXSemantic::BLENDWEIGHT))
{
var = vertComp->getElement(RT_BLENDWEIGHT);
var->setName(String::ToString("vBlendWeight%d", element.getSemanticIndex()));
}
else if ( element.isSemantic( GFXSemantic::TEXCOORD ) )
{
var = vertComp->getElement( RT_TEXCOORD );