@PeroPero

Что такое анимация и с чем ее кушать если OpenGL?

Всем привет. Разбираюсь с загрузкой моделей, как загружать obj файлы и что они представляют я разобрался остались мелочи. Как я знаю obj формат не справляется с анимацией , вернее ее там нет.
Так вот вопрос что из себя представляет модель с анимацией ? Какой простейший формат модели + анимации есть ?
И как понимаю OGL-у надо скармливать готовый массив "кадра" перед этим все самому просчитав так ?
В этой теме новенький , в гугле нарыл пару статей по обычным моделям , а вот с анимацией сложнее. При запросе с #анимация и #модель 90% запросов ведут на модели или всякие максы.
Помогите кто чем сможет. Может лежат у кого в загашнике уроки какие, статьи. Или просто накидайте #-тэгов для поиска.
Заранее всем спасибо.
  • Вопрос задан
  • 2689 просмотров
Решения вопроса 1
@MarkusD Куратор тега C++
все время мелю чепуху :)
Spine C runtime.
https://github.com/EsotericSoftware/spine-runtimes...
Это не серебряная пуля и не идеальные практики. Пожалуй, в плане кода это пример наоборот, как код писать точно не надо.
Но вот в плане реализации анимаций эта репка тебе очень поможет.

Суть такова. Есть модель, она статична. Есть отрезок времени (таймлайн), на этом отрезке есть точки - ключевые кадры. Ключевой кадр несет в себе информацию о том, какую часть модели и как сместить. Чем проще инструкция в ключевом кадре, тем удобнее. Масштаб, поворот и смещение многие любят разделять по разным таймлайнам.
OGL в этом деле не нужен, до поры.

С помощью SRT таймлайнов можно анимировать объекты в пространстве целиком, но если тебе захочется точно так же анимировать части меша модели, то впереди тебя будут ждать трудности.
Анимацию меша лучше реализовать на основе скелета. Это дело в двух словах уже не описать, тут лучше читать статьи.
www.gamedev.ru/code/terms/SkeletalAnim
www.gamedev.ru/code/articles/skeletal_animation
https://habrahabr.ru/post/219509/
https://habrahabr.ru/post/304042/
www.gamedev.ru/code/articles/?id=4182

Самое зерно скелетной анимации в том, что модель остается моделью, анимируются только кости скелета. И именно анимация кости приводит к перемещению фрагмента меша.

Только на одной скелетной анимации далеко все равно не уедешь. Когда требуется на одной модели одновременно задействовать сразу несколько скелетных анимаций, если сделать в лоб, то меш поплывет во все стороны.
Для смешивания различных скелетных анимаций применяют так называемые Blend Trees (ссылок под рукой нету, так что сорри).

В общем, как то так анимация выглядит. Анимируем в цикле обновления, вершины трансформируем в момент формирования кадра. OGL нам нужен, собственно, чтобы нарисовать раскоряченый анимацией меш.
OGL для непосредственного анимирования мешей тебе понадобится только тогда, когда ты достаточно глубоко нырнешь в анимации, в тот же момент ты уже полностью поймешь что от OGL понадобится для этого.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@KickMicro
Очень хороший парень. Я в плане ogl на нем вырос. Да, не на плюсах, но там не затронуты какие то экзотические темы, которые есть только на джаве.
Смотри и наслаждайся:
Часть 1
https://www.youtube.com/watch?v=f3Cr8Yx3GGA
Часть 2
https://www.youtube.com/watch?v=F-kcaonjHf8

Да, на английском, но кому какая разница
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы