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

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

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

Image of Objects and Bezier

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

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

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

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

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

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

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

Спасибо

...