Формат файлу для статичних та анімованих 3D-моделей


22

В даний час я пишу 3D-гру в C ++ разом із OpenGL, і я приходжу до тієї частини, куди слід завантажувати 3D-моделі. Тому я шукаю популярні файлові формати та методи для

  • відображати статичні сітки та
  • надавати анімовані сітки.

Я вже знайшов досить велику кількість можливих форматів та методик, таких як анімація ключових кадрів, скелетна анімація, MD2 до MD5, 3DS, X, Collada тощо. Pp.

Для простоти я хотів би використовувати формат (і техніку), який дозволяє обидва, а саме статичні та анімовані сітки. Тож у мене питання, чи підходить один формат для цієї задачі та який із них ви б запропонували. І для уточнення: мені не потрібні надто гладкі анімації чи новітні функції.

Sidenote: Оскільки я фанат блендера (але не експерт ;-)), було б корисно, якщо це можна використовувати з цим - але, звичайно, це не повинно бути пробкою шоу.

Відповіді:


16

Дозвольте запропонувати вам використовувати Collada .

Він широко підтримується інструментами DCC і добре стандартизований. Він підтримує скелетні анімації і .. ну, він робить майже все, включаючи шейдери та фізику - це не буде для вас актуальним.

Анімації на основі вершин, такі як у форматах MDL або MD2, є більш-менш реліктом минулого. Сьогодні більшість анімацій - це скелетні анімації (тобто думайте, якщо плавно сфальсифіковані символи) та засоби для створення вмісту оптимізовані для них.

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

Щоб завантажити Collada, використовуйте такі бібліотеки, як FCollada або ColladaDOM (не намагайтеся розібрати їх самостійно, Collada - це дійсно жирний XML-монстр ...). Існує також бібліотека імпорту Open Asset , яка завантажує ~ 25 форматів файлів, включаючи Collada (та всі інші формати, які ви згадуєте). Це був би чудовий вибір, оскільки він націлений особливо на розробників ігор та забезпечує його вихід у форматі, придатному для візуалізації в режимі реального часу. Але якщо чесно: я є одним із його співавторів, тому я, мабуть, трохи упереджений.

І останнє, але не менш важливе : формат файлів, який ви використовуєте для імпорту своїх активів, не повинен визначати здібності вашого двигуна та методи, які він використовує - він повинен бути навпаки. Незалежно від того, чи є ваша анімація надто гладкою, це не питання формату імпорту, а про те, яку техніку ви використовуєте для анімації сіток та наскільки добре вони моделюються. Формат імпорту повинен просто допомогти вам ввести свої дані з Blender у свою гру.


Дуже дякую за детальну відповідь. Сьогодні я вперше почув про Collada (рекомендував друг) і не був впевнений, чи дійсно він готовий до використання у виробничих умовах. Я зараз пострілю, дякую. :-)
— stschindler

2
Гарна порада, особливо посилання на AssImp. Я б не запропонував COLLADA, оскільки, здається, ніхто не підтримує все це і правильно, і він досить великий для цілей фактичного вмісту. Я б запропонував використовувати щось на зразок MD5, що дає вам кістяк і досить широко реалізовано правильно (я думаю). Я б також не відхилив досить легко MD2; для цього є безліч зразкових моделей, і ви можете банально анімувати її дешево (хоча це не марно для ragdolls або чого у вас є).
— ChrisE

Я просто пограю з різними форматами файлів. Завдяки AssImp, це буде легко зробити. MD2 справді була моєю першою ідеєю, але, на мою думку, це було досить дорого, а не експортувати належні кістки. Ragdolls в моєму випадку не потрібні, мені просто потрібні анімовані моделі, не займається фізика.
— stschindler

Там справді дуже погані експортери Collada, але принаймні це формат добре задокументований, тому ви завжди знаєте, кого звинуватити :-). MD5 теж хороший кандидат, але я не знаю, наскільки хороші експортери Blender. MD2 має дуже обмежене представлення вершин і страждає від розміру та межі точності. Я справді не хотів би цим користуватися, немає причин для цього.
— Олександр Гесслер

wazim.com/Collada_Tutorial_1.htm - це досить хороший поглиблений посібник для завантаження колади, але я все ж рекомендую замість цього використовувати бібліотеку.
— Вихідний
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.