3D Rigging: поворот ремня или интерполяция кадра за пределы 180 градусов. Эйлер, матрица, кватернионы?

Здесь 3D TD, определяя "кривую Безье" и ориентацию вдоль нее с помощью преобразований объектов управления. У меня есть проблемы, чтобы интерполировать "Вверх вектор" между Control Objectsтаким образом, чтобы у меня была разница между управлением более 180 градусов, поэтому я ограничен в том, как сильно я могу крутить.

Я использую SideFX Houdini, который имеет C-подобный язык под названием VEX для достижения их. Здесь вы можете видеть элементы управления, маркеры Безье (голубой, желтый) и панель трансформации для одного из них.

Изображение объектов и Безье

Чтобы сгенерировать кадры, Безье повторно выбирается в полилинию и начинается с каждого Control Object соответствующая точка есть параллельный транспорт кадров до Control Object соответствующая точка.

Это приведет к разрывам в непрерывности кадров, так что я делаю взвешенное вращение вокруг касательной оси, так что "вектор вверх" кадров постепенно выравнивается со следующим Control Object" Up Vector".

Проблема заключается в том, что это выравнивание выполняется путем проверки угла между двумя векторами. Control Object Upв одной плоскости. Который самый большой отличается 180 градусов. Помимо этого он переворачивается на другую сторону: клип с переворачивающимися рамками

Теперь у меня может быть больше 180, если применить такой поворот или крен, как смещение кадра и последующее выравнивание, но это дополнительный шаг. Поворот выше 180 как смещение

Я понимаю, что при работе с матрицами нет понятия поворотов, и поэтому это может быть невозможно с тем, что я извлекаю из объектов, выставляемых с помощью Эйлера. Но у меня есть ощущение, что может быть решение вокруг кватернионов, я обычно использую их как Ось-Угол, а не то, что я полностью понимаю их концептуально.

Похоже, моя проблема заключается в том, как я связываю один объект управления со следующим, чтобы я мог понять, как много крутится, чтобы перейти от одного к другому.

Ищу ссылки, которые я должен изучить, чтобы разобраться в этом. Если это вообще возможно...

Спасибо

0 ответов

Другие вопросы по тегам