Компьютерная графика

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Компьютерная графика » Программирование графики и GPU » Впорос по интерполяции кватернионов


Впорос по интерполяции кватернионов

Сообщений 1 страница 5 из 5

1

Два кватерниона интерполируются с весами f и 1-f функцией slerp. А как интерполировать 3 и более?
Собственно, спрашиваю в связи с ошкуриванием скелетного меша. Сейчас я это делаю так: преобразую базовую позицию вершины каждым преобразованием каждой кости, а потом получаю взвешенную сумму. Далее получаю все варианты нормали, суммирую их и нормализую результат. Но ведь проще сначала получить результирующее преобразование, равное взвешенной сумме преобразований каждой кости (кватернион + сдвижка), а потом этим преобразованием обработать и вершину, и нормаль.
Но вот как взвешенно просуммировать 3-4 кватерниона (сумма всех весов, разумеется, ==1), никак не пойму. Не подскажете? :)

0

2

IMHO универсальных формул просто нет, скорее всего просто построить линейную комбинацию кватернионов и нормировать
Можно пробовать еще и такой путь: slerp можно записать в таком виде
q1^(1-t)*q2^t

Соответственно можно попробовать просто взять произведение кватернионов в разных степенях

0

3

Steps3D написал(а):

просто построить линейную комбинацию кватернионов и нормировать

А разве так можно? Ведь, насколько я могу понять, линейная комбинация допустима только при малых углах, когда sin(x) -> x.  Собственно, в Вашей реализации slerp (которую я позволил себе с не принципиальными изменениями позаимствовать) именно так и делается.

0

4

Та реализация, которая приведена у меня - это классическая реализация, она работает
Нормировать просто линейную комбинацию в принципе можно, это будет несколько хуже и есть проблема, чтобы длина полученного кватерниона не обратилась в нуль.

Хотя в пнринципе такой путь возможен.
Или попробуйте произведение кватернионов в разных степенях.
Других вариантов я нигде не видел

0

5

Линейная комбинация с нормированием дала серьезные искажения, хотя отклонения не более чем в 3-м знаке после запятой (сравнивал позиции, вычисленные тем и другим способом).

0


Вы здесь » Компьютерная графика » Программирование графики и GPU » Впорос по интерполяции кватернионов


создать форум