Анімація в 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 не працює
snape

Це працює для мене у всіх моїх браузерах ... Спробуйте це посилання x90.es/1CC
Dan

2
Obj не підтримує анімовані сітки, хоча це робить? просто google "Blender opengl skinned mesh", і я сподіваюся, що ви знайдете формат, який підходить тому, що ви хочете редагувати: не міг видалити мою публікацію, мав на увазі відповідь на попереднє повідомлення, рекомендуючи формат obj
Stowelly

1
.obj не підтримує анімацію, і ця відповідь неправильна. stackoverflow.com/questions/757145 / ...
Sean Middleditch

2

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


1

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

Я використовую "b3d трубопровід" експортер від 3dsMax, і я зашифрував власний hlsl шейдер, щоб анімувати та запалювати сітки, він працює дуже добре.

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

Ще один прямолінійний формат - це формат .X, там має бути багато прикладів, як експортувати, завантажувати, розбирати та встановлювати скелет та анімувати з ним. Це формат Microsof, хоча, можливо, ви не хочете його використовувати :-)

Зображення тонів і подібне не має нічого спільного з анімацією, так що так, якщо ви знаєте, як користуватися цією технікою, ви можете робити це з анімованими сітками.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.