Анимация в OpenGL с использованием 3D моделей

11

Я создал модель в Blender. Теперь я хочу прочитать , что 3D - модель в моей программе C ++. Я подумал, что модель может быть экспортирована в различные форматы файлов, например .obj, .3ds или COLLADA, а затем может быть прочитана в программе на C ++. Я искал в интернете это довольно давно и нашел много уроков. Но я столкнулся с проблемами с большинством из них. Например, в учебнике Nehe они используют glaux, который я не хочу использовать в своей программе. А остальные учебники используют md2, который не поддерживается Blender.

Так может кто - нибудь руководство мне , какой формат файла для использования для экспорта 3D модели и как загрузить , что в моей программе OpenGL? Кроме того, как я могу оживить эту модель? Можно ли добавить дополнительные эффекты , такие как тональные после того, как он был загружен в программе C ++ с использованием OpenGL? если да , то каким образом ?

PS Я использую Linux для игры Развитию

Снейпу
источник

Ответы:

2

Я бы пошел в формате OBJ. Как вы уже , наверное , поняли, что есть сотни OBJ погрузчиков для C ++ там . Я считаю, что одним из наиболее зрелых является Assimp , он поддерживает множество различных форматов и довольно хорошо задокументирован. Здесь у вас есть пример, где они его используют.

Дэн
источник
ссылка на lighthouse.com не работает
Снейп
Это работает для меня во всех моих браузерах ... Попробуйте эту ссылку x90.es/1CC
Dan
2
Obj не поддерживает анимированные сетки, правда? просто Google "Blender OpenGL скиновой сетки", и я ожидаю, что вы найдете формат, который соответствует тому, что вы хотите редактировать: не мог удалить мой пост, должен был быть ответом на предыдущий пост, рекомендующий формат obj
Stowelly
1
.obj не поддерживает анимацию, и этот ответ неверен. stackoverflow.com/questions/757145/…
Шон Миддледич
2

В Blender 2.60 исправлена ​​поддержка анимации COLLADA, в более ранних версиях она была более или менее нарушена. Однако, если вы еще не загрузили форматы моделей в свой собственный код, я бы посоветовал сначала изучить загрузку .obj. Он находится в ASCII, поэтому читается человеком и легко читается без внешних библиотек загрузчика.

SurvivalMachine
источник
1

3ds не содержит никаких анимационных данных, поэтому они не будут работать. Collada Я не очень много знаю, но когда я решил, какой формат использовать в своей игре, я много искал и сравнивал, и, наконец, я выбрал формат B3D, он поддерживает скелетную анимацию и загружается из Irrlicht (он также содержит значения освещения ).

Я использую экспортер 'b3d конвейер' из 3dsMax, и я кодировал свой собственный шейдер hlsl для анимации и освещения мешей, он работает очень хорошо.

Вы можете проверить, как Irrlicht делает это (т.е. загружает и анимирует), он выполняет анимацию в программном обеспечении, но есть примеры, если вы немного поищите, как это сделать с помощью шейдера (если вы этого хотите). Приятно то, что Irrlicht поддерживает как OpenGL, так и Linux.

Другим довольно простым форматом является формат .X, должно быть множество примеров того, как экспортировать, загружать, анализировать и настраивать скелет и анимировать его. Это формат Microsoft, хотя, может быть, вы не захотите его использовать :-)

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

Valmond
источник