Тема: Xors3D
Показать сообщение отдельно
Старый 22.09.2008, 21:09   #54
johnk
Легенда
 
Регистрация: 01.10.2006
Сообщений: 3,705
Написано 296 полезных сообщений
(для 568 пользователей)
Ответ: 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 );

......

Или там по-другому?
(Offline)
 
Ответить с цитированием