Подтвердить что ты не робот

Какой формат 3D-модели я должен использовать?

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

Кажется, что форматы специально предназначены для игр, таких как MD2/3/5, но я не уверен, я использую wings3d, если я моделирую, и я не знаю, какие другие детали помимо чисто загрузки, что мне нужно, и поддержка из формата Id должен реализовать, например, мне нужно будет реализовать IK? и могу ли я использовать сценарий на единицу анимации, а не обратную кинематику и фальсификацию костей?

4b9b3361

Ответ 1

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

Из часто задаваемых вопросов о Collada.org:

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

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

Ответ 2

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

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

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

Ответ 3

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

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

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

Ответ 4

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

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

Ответ 5

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

Ответ 6

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