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

Форматы 3D файлов для игр

Я начинаю с XNA и Blender, и я пытаюсь найти хорошее качество, обновленную информацию о различных форматах 3D файлов, которые используются в разработке игр.

Очевидно, что многие игры разрабатываются с использованием нескольких и пользовательских форматов 3D файлов, но я заинтересован в выборе хорошего решения с использованием более широко поддерживаемого формата.

Каковы наиболее популярные форматы и что их отличает?

ПРИМЕЧАНИЕ В идеале они должны поддерживать анимацию, но меня также интересуют другие форматы, которые могут использоваться для создания карт или статических объектов.

4b9b3361

Ответ 1

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

Blender 2.5 наконец-то получит хорошую поддержку Collada (текущий не имеет арматуры и разбит множеством способов), а Autodesk - хороший инструмент для преобразования Collada ↔ FBX.

Если вы посмотрите вокруг сообщества разработчиков хобби, вы увидите, что форматы данных Id Software довольно популярны. С одной стороны, форматы анимации символов вершинного мультика MD2 и MD3, формат скелетной анимации MD5, чьи потребности явно покрыты выше, а с другой стороны - формат файла BSP, который описывает уровни игры.

Одна вещь, которая говорит для BSP, заключается в том, что доступен хороший редактор (GTKRadiant и производные). Это эффективный формат, который может отбирать скрытую геометрию. Тем не менее, затраты времени на создание пользовательской геометрии в XNA значительны, и с ограничениями этих форматов они довольно скромны в 64-килобайтных вершинах и 64-килограммовых многоугольниках на всем игровом уровне, что сейчас можно просто сбрасывать на графическую карту в настоящее время, и нет падение производительности будет заметным. Таким образом, вы не получаете никакой выгоды от его поддержки напрямую.

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

Несколько ссылок, которые вы, возможно, захотите проверить, если вы еще этого не сделали:

Контент 3D World Studio

Порт Quake

Все неподдерживаемые и устаревшие, не знаю, как оптимизированы или нет.

Ответ 2

Если вы используете XNA, лучшим вариантом является, вероятно, FBX. Основная причина, по которой я говорю, заключается в том, что это единственный, не относящийся к XNA формат поддерживаемый изначально XNA в контенте создания контента.

Ответ 3

Уже упомянутые COLLADA и FBX являются единственными стандартными форматами, которые достигли значительного успеха в игровой индустрии. Несколько игр будут загружать их напрямую, хотя они обычно используются в качестве промежуточных форматов для экспорта из приложений DCC, а затем дополнительно обрабатываются в более оптимизированные форматы времени выполнения, которые обычно являются специфическими и специфичными для двигателя.

Разработчики Hobbyist часто используют форматы файлов из популярных игр в качестве отправной точки. Модель Quake 3 и форматы карт были довольно популярны некоторое время. Формат Microsoft.X также был очень популярен для проектов любителей, благодаря наличию множества экспортеров и поддержке загрузки в инфраструктуре D3DX.

Ответ 4

Вероятно, вы захотите посмотреть COLLADA, который является широко используемым стандартом в разработке 3D-игр:

http://en.wikipedia.org/wiki/COLLADA

Ответ 5

Я выбрал формат MS3D, потому что его спецификация проста, имеет смысл, имеет анимацию, а также фальсификацию (суставы) и документирована.

Также см. мой предыдущий вопрос, очень похожий на этот, и ответ, который я написал ему (что, как ни странно, похоже на нижнюю часть страницы):

[SOLVED] Рекомендуемый тип 3D модели для внутриигровой модели персонажа, загруженный вручную?

Ответ 6

Возможно, стоит обратить внимание на glTF.

В работе также есть версия glTF 2.0, которая добавляет поддержку рендеринга на основе физики. Проект на сайте Khronos.

Assimp имеет "частичную" поддержку для него. Не уверен, чего не хватает.

Там также есть куча загрузчиков для разных языков (С++, WebGL/JS, Rust, Go) на github.

Также есть конвертер COLLADA в gltf.

Он использует JSON файл как своего рода манифест, затем загружает данные в другие файлы, такие как .bin для двоичных, различных изображений и glsl для шейдеров. Существует двоичное расширение, хотя.

Конечно, поскольку это новая (и все еще разрабатываемая) поддержка не будет такой большой. В прошлый раз, когда я смотрел, КОЛЛАДА была довольно хитом и промахом тоже.

Существует также Декларативный 3D.

Смотрите этот документ, который охватывает оба.

Оба эти формата имеют немного веб-фокуса, но также должны быть хорошими для игр.

Ответ 7

Не эксперт (далек от него, просто играл вокруг).

Я предполагаю, что формат 3d studio max (.3ds) вполне используется, а также RAND файл renderman. Я также любил AC3D формат файла (это простой текст).

Ответ 8

В течение многих лет очень популярна Формат файла DirectX (расширение .x), и Blender содержит для этого встроенный экспортер.

Ответ 9

PMD файл. Они используются для анимации MMD и многое другое! Просто найдите вокруг Deviantart.com для таких вещей, как "MMD models"

PMD и PMX AND OBJ