Показать сообщение отдельно
Старый 11.01.2012, 08:42   #4
Knightmare
Дэвелопер
 
Регистрация: 14.02.2007
Сообщений: 1,471
Написано 824 полезных сообщений
(для 2,920 пользователей)
Ответ: DirectX вектор умножить на матрицу (расчет скелетки)

Суммарный вес всех костей равен 1. Неужели так сложно догадаться, что надо тупо перемножить вершину на матрицу каждой кости, результат домножить на вес и потом все вектора сложить?

Vector resultPosition;
for(
int i 0vertex->getTotalWeights(); i++)
    
resultVector += (skeleton->getBoneMatrix(vertex->getBoneIndex(i)) * vertex->getPosition()) * vertex->getBoneWeight(i); 
(Offline)
 
Ответить с цитированием