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


8

Существует ли формат де-факто для экспорта 3D-модели из программного обеспечения для моделирования в игровой движок?

Я знаю, что это зависит от движка и ситуации, но какая общая идея приходит в голову опытным разработчикам игр, когда возникает этот вопрос?

На мой взгляд, формат obj подходит, но он не поддерживает анимацию.

Итак, какой может быть лучший формат, который поддерживает / охватывает более или менее все функции, которые может охватывать современный движок? FBX? Collada?

Некоторое профессиональное понимание поможет.


Я думаю, что вы искали термин «де-факто», а не «де-фактор».
Никол Болас

@ Николь-Болас исправлена
Quazi Irfan

Ответы:


8

Нет «лучшего формата»; есть только разные уровни раздражающих.

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

FBX не так широко поддерживается, поскольку является проприетарным форматом. И это ... проприетарный формат, но, по крайней мере, спецификация формата доступна.

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

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


«но не то, что вы, вероятно, должны искать, чтобы загрузить прямо в вашу игру». Почему?
Quazi Irfan

«... использовать автономный инструмент для преобразования их в свои игровые форматы». Это должно быть преобразование двоичного уровня?
Quazi Irfan

4
@iamcreasy: "почему?" Вы смотрели на Колладу? Вы действительно хотите загрузить это, сделать так много преобразований ASCII в плавающее число, а затем, после того, как все это сделано, сжать данные в окончательную форму, используемую вашей игрой?
Никол Болас

2
@iamcreasy: Это не обязательно должен быть двоичный файл, но неплохо было бы и ему быть. Вы можете загрузить его непосредственно как образ памяти в некоторых случаях. Вы даже можете загрузить данные вершин непосредственно в указатель на отображенный буферный объект. Время загрузки в играх достаточно плохое, и никто не делает их хуже.
Никол Болас

1
@iamcreasy Он должен быть двоичные данные, все остальное пустая трата для двигателя
Maik Semder
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.