Original Post
Hello! I try to implement skinned meshes for character animation in my engine and I understand the theory behind it so far. I looked into the SDK SkinnedMesh sample and found the following code in the .fx file: static const int MAX_MATRICES = 26; float4x3 mWorldMatrixArray[MAX_MATRICES] : WORLDMATRIXARRAY; I'm not very experienced using HLSL, so my first question is: what exactly does WORLDMATRIXARRAY mean? I didn't find anything about it in the SDK documentation... but I think it is nothing else than the matrices set with the D3DTS_WORLDMATRIX(n) macro... well, if this is the case, I have some problem. I am currently working on a GeForce4 Ti4600 (until my GeForce6 arrives) and MaxVertexBlendMatrixIndex=0 on this card... so, it should not be possible to set 26 different world matrices and access it within a shader, or am I misunderstanding it? Next problem is, that I need some fallback version for pre-shader hardware. I thought of switching to software vertex processing for rendering of skinned meshes but don't know if this is really useful. I also asked myself how it is possible to use a different number of blend matrices for every vertex, i.e. 3 blend weights for vertex 1, 4 blend weights for vertex 2 without using VS 2.0 as described in "Skinned Mesh Character Animation with Direct3D 9.0c". Thank you for you help.