Формат файлу для статичних та анімованих 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.