OpenGL анимация - PullRequest
       18

OpenGL анимация

13 голосов
/ 20 ноября 2010

Если у меня есть 3d модель человеческого тела, которую я хочу оживить при ходьбе, каков наилучший способ добиться этого? Вот возможные пути реализации этого:

  • Создайте несколько моделей с ножками в разных положениях, а затем выполните интерполяцию между этими моделями.
  • Загрузите модель в openGL, и каким-то образом определите, какие вершины соответствуют ветвям, и выполните соответствующие преобразования.
  • Реализация каркаса или арматуры (аналогично этому: Вики анимации блендера ).

Ответы [ 2 ]

13 голосов
/ 20 ноября 2010

Техника, которую вы описали в первом варианте, называется анимацией морфинга цели и часто используется для некоторых деталей анимации, таких как лицевая анимация или, возможно, открытие и закрытие рук.

Второй вариант - это процедурная или физическая анимация, которая работаетчто-то вроде робототехники, где вы даете телу своего персонажа некоторую скорость, чтобы двигаться вперед и вычислять, что нужно сделать ногам, чтобы избежать падения.Но вы бы делали это не на вершинах, а на скелете.См. Следующий.

Третий вариант - скелетная анимация, которая оживляет скелет, а вершины следуют ему по набору правил.Присоединение вершин к скелету называется скиннингом.

Я предлагаю, чтобы после ознакомления с материалами opengl (просмотра и позиционирования моделей в пространстве, камеры и т. Д.) Вы начали с скелетной анимации.

ВыВам понадобится модернизированная и анимированная модель для вашего трехмерного приложения.Затем вы можете написать экспортер в свой пользовательский формат или выбрать формат, который вы хотите прочитать из вашего приложения.Этот формат файла должен содержать описание модели, скелета, обложки и ключевых кадров.Чем вы читаете и используете эти данные из своего кода для построения сетки, скелета и анимации по ключевым кадрам.

2 голосов
/ 20 ноября 2010

Если бы я был на вашем месте, я бы скачал Blender с http://www.blender.org и поработал над некоторыми уроками анимации.Например, этот:

http://wiki.blender.org/index.php/Doc:Tutorials/Animation/BSoD/Character_Animation

Сделав это, вы можете экспортировать свою модель и анимацию, используя, например, экспортер Ogre.Я думаю, что это последняя версия, но убедитесь, что:

http://www.ogre3d.org/tikiwiki/Blender+Exporter&structure=Tools

Оттуда, вам просто нужно написать код C ++ для загрузки всего, интерполировать между ключевыми кадрами и т.д.У меня есть код, который я могу показать вам, если вам интересно.

...