Какой формат 3D-модели мне следует использовать? - PullRequest
32 голосов
/ 21 февраля 2009

Я пишу игровой движок, и мне интересно, какой формат 3D-модели мне использовать / load / export? Obj кажется универсальным и простым, но он также выглядит ненадежным в том смысле, что большинство моделей содержат ошибки, и он не хранит где-либо рядом с другими форматами.

Похоже, что существуют форматы специально для игр, такие как MD2 / 3/5, но я не уверен, что я использую wing3d, если я моделирую, и я не знаю, какие другие детали, кроме чистой загрузки того, что мне нужно, и поддержки из формата Я должен реализовать, например, мне нужно реализовать IK? и могу ли я использовать скриптовую анимацию за штуку, а не инверсную кинематику и такелаж кости?

Ответы [ 6 ]

23 голосов
/ 21 февраля 2009

Collada - открытый формат на основе XML для 3d-моделей, принадлежащий группе Khronos (орган по стандартам OpenGL)

Из FAQ по Collada.org:

Набор функций COLLADA 1.4.x включает в себя:

  • Геометрия сетки
  • Преобразование иерархии (вращение, перемещение, сдвиг, масштаб, матрица)
  • Эффекты
  • Шейдеры (Cg, GLSL, GLES)
  • Материалы
  • Текстуры
  • свет
  • Камера
  • Skinning
  • Анимация
  • Физика (твердые тела, ограничения, тряпичные куклы, столкновения, объемы)
  • Инстанцирование
  • Методы
  • Multirepresentations
  • Активы
  • Данные пользователя
5 голосов
/ 21 февраля 2009

Прежде чем беспокоиться о том, какие 3D-форматы вы хотите поддерживать, я думаю, вам стоит сосредоточиться на том, какие функции вы планируете реализовать в своем движке. Запишите их как требования и выберите формат, который поддерживает большинство функций, из списка ... так как вы захотите продемонстрировать свой движок (я предполагаю, что вы планируете сделать свой движок общедоступным). Возможно, вы даже захотите свернуть свой собственный формат, если у вашего движка есть свои особенности (что всегда полезно иметь для игрового движка).

После этого поддерживайте как можно больше популярных форматов (.X, .3DS, .OBJ, .B3D) ... чем доступнее ваш движок, тем больше людей захотят с ним работать!

Collada - это приятный и универсальный формат, но, как упоминает Нильс, это не идеальный формат для окончательного развертывания.

2 голосов
/ 05 октября 2009

+ 1 для коллада. Вам также может потребоваться собственный собственный двоичный формат для действительно быстрой загрузки (обычно это просто двоичный дамп данных буфера вершин / индексов, а также данные материала и скелета, а также данные о столкновениях, если это необходимо).

Одной из тенденций в игровой индустрии является поддержка загрузки формата, подобного collada, в сборке движка для разработчиков, но также имеется набор инструментов, который экспортирует оптимизированную версию для выпуска. Версия разработчика может динамически обновлять сетку, поэтому, когда художники сохраняют изменения, файл автоматически перезагружается, предоставляя им (почти) мгновенный WYSIWYG-просмотр их модели, но при этом предоставляя полностью оптимизированный формат выпуска.

2 голосов
/ 21 февраля 2009

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

Коллада может стоить посмотреть. Я не думаю, что это хороший формат для чтения 3D-движком. Впрочем, это нормально в качестве общего формата обмена данными.

http://www.collada.org/mediawiki/index.php/Main_Page

1 голос
/ 21 февраля 2009

хорошо поддерживает Collada, а затем поставляет хорошие конвертеры в / из других форматов (это может быть трудной частью). Это даст вам максимальную гибкость. Взгляните на C4 двигатель

0 голосов
/ 19 июня 2009

Collada великолепен, но он больше живет в 3D-приложениях. то есть лучше всего использовать для передачи 3D-данных между приложениями, а не для загрузки 3D-данных из игрового движка. Вы смотрели на Луа? Он широко используется в играх, потому что это язык сценариев, который смехотворно быстр (идеально подходит для игр) и очень гибок (может использоваться для представления любых данных, необходимых для вашего движка).

...