Интерполяция матриц вращения при растяжении - PullRequest
0 голосов
/ 03 апреля 2020

Наша система анимации интерполирует между кадрами и преобразует в кватернионы и использует SLERP. Если матрицы не нормализованы (например, их сдавлены или растянуты по одной или нескольким осям), то мы нормализуем матрицы в мировом пространстве, принимая во внимание масштабы, перебираем между векторными масштабами и применяем это обратно к интерполированной матрице вращения в конец. Наш тест представляет собой вращающийся шар, который сжимается в мировом пространстве по вертикали.

Наш код интерполяции работает нормально, если есть только вращения или просто растяжение, но не когда они вместе. Мяч, кажется, сква sh в случайных направлениях.

Есть ли способ сделать это правильно? Я попытался просто интерполировать каждый элемент матрицы линейно, и на самом деле это было не так уж плохо - возможно, потому что две матрицы не разошлись так далеко - это анимация 30 кадров в секунду, но я знаю, что это не надежный способ сделать это.

Спасибо

Шон

...