ПрограммированиеФорумОбщее

Какой открытый формат для 3D террайнов и описания игровых миров предпочтителен в 2025?

Страницы: 1 2 3 Следующая »
#0
20:57, 2 дек 2025

Сабж

Делаю движок, но не хочется делать инструментарий. Персонажи будут в glTF2, а с остальным ещё не определился

#1
21:05, 2 дек 2025

сколько литров движок?

#2
21:11, 2 дек 2025

А разве из открытых форматов для терайнов кроме карты высот что-то есть?

SkibidiSigma
> сколько литров движок?

Стока не выпить ))

#3
21:23, 2 дек 2025

stratego
> А разве из открытых форматов для терайнов кроме карты высот что-то есть?

Ну мало ли, вдруг что-то упускаю

А для описания сцен? gltf не умеет ведь другие gltf в свою сцену импортировать?

#4
0:00, 3 дек 2025

httpd
> gltf не умеет ведь другие gltf в свою сцену импортировать?
А разве должен уметь?
Насколько знаю, это просто дескрипшн хранения данных. От хроносов никаких официальных либ по работе с ним не было.  Редакторы используют свои кастомные импортеры/экспортеры.
Соотвественно, чтобы смерджить два gltf, импортишь их в редактор/движок. Экспортишь одним файлом. Профит.

#5
1:08, 3 дек 2025

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

#6
1:15, 3 дек 2025

Kemanorel
> Зависит от того как ты этот ландшафт реализовывать собрался.

Мне на самом деле любой способ подойдёт - с чего-то начать лишь бы. Пусть это будет какой-то способ описывать замкнутые помещения, например. Кабина корабля со стоящими в неё вещами, предметами.

#7
1:15, 3 дек 2025

AMM1AK
> > gltf не умеет ведь другие gltf в свою сцену импортировать?
> А разве должен уметь?

А там есть раздел scenes, например. В который входят корни нод объектов.

#8
2:08, 3 дек 2025

httpd
> Кабина корабля со стоящими в неё вещами, предметами.

А это к ландшафту не имеет никакого отношения.

#9
2:10, 3 дек 2025

Kemanorel
> А это к ландшафту не имеет никакого отношения.

Хорошо, а как это называют? Окружение? Тогда речь о нём

Я просто хотел бы чтобы были учтены нюансы о которых я ещё не знаю и были доступны редакторы

#10
12:53, 3 дек 2025

httpd
> А для описания сцен?
USD, USDA, USDC — различные форматы Universal Scene Description. Файл описывающий сцену и 3д модели.

#11
13:14, 3 дек 2025

Сцена особенно большой быть не может, она грузится целиком. Террейн - по частям.

#12
16:33, 13 дек 2025

httpd
> Делаю движок, но не хочется делать инструментарий.
Используй мощности Unreal Engine. С его помощью можно сделать ландшафт любой сложности и затем экспортировать его в fbx.

Kemanorel
> карта высот
Не нужна.

#13
10:44, 15 дек 2025

totoro
> Используй мощности Unreal Engine. С его помощью можно сделать ландшафт любой сложности и затем экспортировать его в fbx.

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

#14
11:28, 15 дек 2025

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

Изображение
Изображение
Изображение

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

Ну и тут мы снова возвращаемся к твоему вопросу. К вопросу о формате.

Ежели ты берешься генерировать ландшафт процедурными методами (через шум), тогда тебе не нужен никакой открытый формат в классическом понимании (как .fbx или иже с ним). Твоим форматом становится математическая формула и seed (зерно генерации).

1. Если ты хочешь растровое представление результата, то ты генерируешь карту высот. Просто, но занимает много места и имеет конечное разрешение. Впрочем, она монохромная, поэтому вопрос ее сжатия можно отдать на откуп твоей изобретательности.
2. А вот если ты хочешь прямо противоположный результат получить, тогда тебе нужно копать в сторону фракталов и Signed-Distance Fields. Они дадут тебе векторное представление ландшафта, не будут практически ничего весить (какие-то килобайты), из плюшек - бесконечное разрешение, ибо фракталы на то и фракталы, что они самоподобны.

Ну и таким образом, для современного движка, при условии, что ты не хочешь таскать повсюду тяжелые ассеты, лучшим, так сказать, форматом для террейна станет вовсе не .obj, а что-то вроде struct { float frequency; int octaves; int seed; }. Так оно получится компактнее, гибче, и заодно позволит генерировать мир на лету, прямо как в заправском No Man's Sky. Выбор, конечно же, за тобой.

Страницы: 1 2 3 Следующая »
ПрограммированиеФорумОбщее