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

Рекомендуемые форматы файлов и графические библиотеки для импорта 3D-модели в проект OpenGL/С++?

Если вы хотите:

  • моделировать объект в 3D-редакторе, например. Blender, Maya и т.д.
  • экспортировать модель в формат данных/файлов
  • импортировать модель в проект с использованием OpenGL и C/С++

Тогда:

  • Какой формат файла вы бы рекомендовали экспортировать, т.е. с точки зрения простоты, переносимости и совместимости (т.е. общего/популярного)?
  • Какие графические библиотеки вы бы рекомендовали использовать для импорта модели в ваш проект OpenGL C/С++ (то есть предпочтительно с открытым исходным кодом)?
  • Кроме того, существуют ли форматы данных/файлов, которые также захватывают анимацию, то есть формат "анимированной модели", так что анимация может быть смоделирована в 3D-редакторе и каким-то образом вызываться внутри кода (например, доступность кадров в последовательности анимации или какая-то другая парадигма для сохранения/загрузки деталей, связанных со сменой изменений)?

Вообще говоря, я ищу простоту в качестве приоритета, то есть помощь, чтобы начать работу с моим опытом как в области искусства, так и в компьютерной науке. Я - специалист по информатике в UMass, в то же время, своего рода "псевдо" двузначный в искусстве, беря факультативы в графическом дизайне в моем университете, а также классы в Художественном институте Бостона во время летних/зимних сессий So, другими словами, я не полный новичок, но в то же время мне не нужны варианты, которые настолько перегружены сумасшедшими расширенными конфигурациями, что слишком сложно начать с базового демонстрационного проекта; то есть в качестве первого шага к пониманию того, как преодолеть разрыв между этими двумя мирами, например. создавая программу с 3D-символом, с которым пользователь может взаимодействовать.

4b9b3361

Ответ 1

COLLADA (я говорю это с "ах" в конце) и Assimp (например).

Итак, почему COLLADA? Простой:

  • COLLADA - это открытый стандарт, сделанный компанией Khronos (специально для Sony). Красота открытого стандартного формата заключается в том, что это, ну, стандарт! Вы можете быть уверены, что любой результат стандартно-совместимого продукта также будет корректно считываться другим стандартно-совместимым продуктом. Сказать, однако, что некоторые 3D-моделирующие продукты не так уж и важны в их измерениях соответствия стандартов для COLLADA. Но все равно будьте уверены: Blender, Maya, 3ds Max и все другие крупные имена в 3d-моделировании имеют хорошую поддержку формата.
  • COLLADA использует XML. Это делает его намного проще для вас, если вы планируете создать своего собственного читателя или писателя.
  • ДОПОЛНИТЕЛЬНО: COLLADA, я думаю, единственный формат, который не привязан к конкретной компании. Вы знаете, это очень хорошо для нас.
  • ДОПОЛНИТЕЛЬНЫЙ 2: Известно, что COLLADA медленно анализируется. Это правда. Но подумайте об этом: все другие недвоичные форматы (например, fbx) также имеют одинаковые проблемы. Для ваших нужд, COLLADA должно быть достаточно.
  • ДОПОЛНИТЕЛЬНАЯ 3: COLLADA поддерживает анимацию!

Для библиотеки импортеров я настоятельно рекомендую Assimp. Почему?

  • У Assimp есть поддержка любого популярного формата, который вы можете себе представить. Он имеет унифицированный интерфейс для всех форматов, поэтому переключение на другой формат - это меньше боли.
  • Ассимп расширяем. Таким образом, вы можете импортировать свой собственный формат и не изменять код.
  • ДОПОЛНИТЕЛЬНЫЙ 4: Ассимп с открытым исходным кодом! Позвольте поддерживать программное обеспечение с открытым исходным кодом!

Ответ 2

Во-первых, здесь вы можете прочитать о предлагаемой загрузке модели lbs.Lib Assimp действительно хорош и поддерживает многие форматы. Для предпочтительных форматов. Collada - я бы не рекомендовал, потому что это форматы на основе XML (текста), которые медленно обрабатываются. Формат Obj также широко распространен, но страдает от тех же проблем, что и Collada. Это все еще хорошо, если вы хотите написать свой собственный парсер, поскольку его структура очень проста. Но вместо этого я бы предложил 3Ds, который является двоичным. Он не поддерживает анимацию, хотя. Самый популярный формат сегодня, который поддерживает как статическую сетку, так и анимацию, - это FBX. Вы можете скачать бесплатно FBX SDK от Autodesk и подключить его к вашему двигатель. Причина, по которой я бы выбрал FBX, состоит в том, что и SDK, и формат действительно надежны. Например, в FBX вы можете вставлять не только геометрию и анимацию, но также объекты сцены в качестве огней, камер и т.д. Документы Autodesk тоже очень приятные. Надеюсь, что это поможет.

Ответ 3

Я бы рекомендовал использовать собственный пользовательский формат, который в основном представляет собой двоичный дамп буфера вершин и буферов индексов, используемых в вашей программе. (Используя термины d3d, я знаю, что opengl имеет те же понятия, но не может помнить, имеют ли они разные имена).

Затем я написал отдельную программу, используя assimp, который принимает практически любой формат и записывает файл в вашем пользовательском формате. Затем вы можете использовать collada или что хранить ваши фактические модели, но не иметь усложнения и медленности загрузки этого формата во время выполнения.