Оптимизация преобразований для скелетной анимации
1
УДК 519.21:519.72
Оптимизация преобразований для скелетной анимации
© С.А. Ивлиев, А.А. Павельев, Н.Ю. Рязанова
МГТУ им. Н.Э. Баумана, Москва, 105005, Россия
В статье рассматриваются вопросы воспроизведения движения объектов графи-
ческой сцены, заданных в виде скелетных моделей, в реальном масштабе времени.
Предлагается подход к оптимизации временных затрат на формирование кадра
изображения, заключающийся в реализации комбинированного решения: задавать
преобразования набором — кватернион, коэффициенты масштабирования и пере-
нос, а хранение и преобразование выполнять в виде матрицы перехода.
Ключевые слова
:
анимация, скелетная анимация, скелет, матричные пре-
образования, кватернион.
Для генерации движения (анимации) реалистических изображений
трехмерных графических объектов в реальном масштабе времени ис-
пользуются различные методы, выбор которых обусловлен сферой
применения. Наиболее жесткие требования к изображению движения
на экране предъявляются в 3D-играх. При разработке соответствую-
щего программного обеспечения возникают следующие вопросы: как
реализовать анимацию, задать ее и редактировать, как оптимизировать
преобразования, связанные с движением для получения реального
времени, как экспортировать в систему визуализации, какие форматы
входных и выходных файлов использовать и т. п. В настоящее время
скелетная анимация стала стандартом в анимации персонажей или ме-
ханических объектов не только в игровой индустрии, но и в кино.
В основе скелетной анимации лежит скелетная структура объек-
та, т. е. набор иерархически упорядоченных костей, к которым уже
крепится часть визуального представления объекта. Скелет удобно
рассматривать как иерархическую структуру костей в отношении
предок — потомок. Корневая кость формирует точку опоры для всей
скелетной структуры. Все остальные кости скелета крепятся к корне-
вой, как потомки. Для каждой кости задается трехмерное преобразо-
вание (позиция, размер, ориентация) относительно родительской ко-
сти. Каждая кость скелета задается как вектор в системе координат
скелета, где опорная точка имеет координату 0. Для каждой кости
скелета существует связанный с ней набор точек. Эти точки хранятся
в собственном пространстве скелета и перед прорисовкой должны
быть преобразованы в глобальное пространство с помощью преобра-
зования, связанного с данной костью.
Преобразования задаются матрицами размерности 4
×
3 или 4
×
4.
Полное преобразование кости-потомка — произведение преобразо-