Ответ: Xors3D
Дык будет что-то типа:
#define MaxBones 59
float4x4 Bones[MaxBones];
...
struct VS_INPUT
{
float4 Position : POSITION0;
float2 TexCoord : TEXCOORD0;
float3 Normal : NORMAL0;
float3 Tangent : TANGENT0;
float4 BoneIndices : BLENDINDICES0;
float4 BoneWeights : BLENDWEIGHT0;
}
VS_OUTPUT VSBasic( VS_INPUT input )
{
VS_OUTPUT output;
float4x4 SkinTransform = 0;
SkinTransform += Bones[ input.BoneIndices.x ] * input.BoneWeights.x;
SkinTransform += Bones[ input.BoneIndices.y ] * input.BoneWeights.y;
SkinTransform += Bones[ input.BoneIndices.z ] * input.BoneWeights.z;
SkinTransform += Bones[ input.BoneIndices.w ] * input.BoneWeights.w;
float4 pos = mul( input.Position, SkinTransform );
......
Или там по-другому?
|