1 слайд

advertisement
1 слайд
Добрый день, Уважаемые члены комиссии.
Меня зовут Загарских Александр Сергеевич.
Я хочу представить вашему вниманию проделанную мною работу по разработке системы
скелетной анимации.
2 слайд
На данном слайде вы можете видеть цели моей работы
3 слайд
Скелетная анимация может применяться в таких областях как тренажеры и симуляторы, игры и
интерактивные галереи. Причем время расчета каждого кадра не должно превышать 50мс, иначе
изображение генерируемое программой будет некомфортным для восприятия пользователем
4 слайд
Все модели в трехмерном пространстве задаются в виде треугольников вершины которых
аппроксимируют поверхности данных моделей.
И тут то и встает вопрос, как анимировать все это большое количество вершин?
5 слайд
Существует два способа задания анимации это повершинная при которой отдельно для каждой
вершины задается своя позиция и скелетная при которой все вершины модели привязываются к
определенным сочленениям скелета и вращения и позиции сочленений будут задавать новые
позиции вершин.
анимацию также можно разделить на два вида, это анимация по ключевым кадрам при которой
вся анимация представляется в виде последовательности кадров хранящих позиции и вращения
сочленений, расположенных в хронологическом порядке. И второй вид это процедурная
анимация при которой новые позиции и вращения сочленений рассчитываются с помощью
процессора, к примеру рэг долл.
6 слайд
Саму скелетную анимацию можно разделить на три части.
Это скелет, который представляет собой дерево сочленений.
Скининг т е определение позиций вершин модели относительно сочленений в зависимости от
веса сочленения на данную вершину.
И способ задания конечной позиции и вращения сочленения.
прямая кинематика это способ, при котором глобальные координаты сочленения высчитываются
с помощью локальных координат, а при инверсной кинематике соответственно локальные
координаты высчитываются из глобальных.
В данной работе реализован только способ прямой кинематики.
7 слайд
В данной работе сочленения представляются в виде глобальных позиции и ращения, локальных
позиции и вращения относительно родительского сочленения и родительского сочленения.
А вершины в виде позиции, нормали и индексов сочленений которые влияют на данную вершину
и веса этих сочленений.
Смысл формулы скининга в том что вначале позиция вершины в момент связывания переводится
в пространство сочленения также в момент связывания, после чего позиция вершины переводится
обратно в пространство объекта, но уже относительно нового положения и вращения сочленения,
полученный таким образом вектор домнажается на вес данного сочленения и сумма всех
полученных таким образом векторов даст новую позицию вершины.
8 слайд
Система виртуальной реальности для которой разрабатывалась система скелетной анимации
состоит из следующих систем, при этом только первые четыре системы участвуют в скелетной
анимации.
9 слайд
Для создания анимации по ключевым кадрам решено было использовать продукт компании
Autodesk Maya 2008 из за ее открытости с помощью которой можно легко подстраивать ее под
свои нужды.
Благодаря этому был написан плагин, который позволяет экспортировать модели и анимацию
созданные в Maya в наш проект.
10 слайд
На этом слайде вы можете увидеть структуру формата файла ESX в который записывается вся
необходимая информация о модели и анимации.
11 слайд
На данном слайде вы можете видеть диаграмму потока данных созданной мной системы
анимации.
Из Maya все модели и анимация посредством плагина экспортируются в файлы формата ESX и
попадают в геометрическую систему. В игровой системе находятся объекты персонажей. Каждый
объект хранит все анимации и в зависимости от состояния персонажа объект определяет, какую
анимацию необходимо проигрывать. Из системы ввода в игровую систему поступают сигналы о
нажатии пользователем клавиш клавиатуры или мыши и в зависимости от того какая клавиша
была нажата объект персонажа изменяет состояние.
Из игровой системы в геометрическую поступает информация о текущем положении и вращении
сочленений персонажа, на основе которых геометрическая система создает массив вершин,
который подается на вход графической системы, где он соответствующим образом
обрабатывается и выводится на экран. В особом случае, когда появляется необходимость в
физике тряпичной куклы, объект персонажа посылает соответствующий сигнал в геометрическую
систему, которая создает массивы вершин и передает их на вход физической системы. В
физической системе на основе этих массивов строятся лимбы, которые соединяются физическими
сочленениями. Физическая система рассчитывает новые позиции и вращения лимбов и посылает
их на вход игровой системы. Игровая система передает их на вход геометрической системы и тд
12 слайд
персонаж может находится в нескольких состояниях, плавный переход из одного состояния в
другое осуществляется за счет того что у каждой анимации есть свой вес и при переходе вес
текущей анимации уменьшается с единицы до нуля, а вес новой анимации с нуля до единицы.
13 слайд
В данной работе была также реализована физика тряпичной куклы.
Расчет столкновений лимбов осуществляется в PhysX.
Для генерации лимбов выбираются те вершины у которых вес сочленения, для которого создаётся
лимб больше определенного параметра.
Далее все лимбы соединяются сочленениями PhysXа и для каждого сочленения выставляются
ограничения, выставленные еще в Maya. В итоге получается такая вот тряпичная кукла.
14 слайд
на данном слайде вы можете видеть результаты моей работы и дальнейшие пути развития.
и на последок хотелось бы показать сам результат. ALT+TAB
на этом у меня всё, благодарю за внимание.
Download