Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Форум / Масштаб игрового мира и моделей

Масштаб игрового мира и моделей

Поделиться
bykabakПостоялецwww6 дек. 201717:39#0
По каким критериям выбирают масштаб в целом понятно, но как конкретно ?

1) Модели создаваемые в 3D редакторах имеют привязку к какой-нибудь системе координат и хранят эти данные в своём теле, или они абстрактно рисуются в диапазоне от 0.0f до 1.0f, или от -1.0f до 1.0f и при импорте с их масштабом обычно что-то делают ?
2) Как глобально устанавливать масштаб для всех моделей и учитывать их при импорте в игровой движок ? ( или каждая модель подгоняется вручную )
3) Какой оптимальный шаг точкам вертексного буфера Terrain в мире игры и какая их привязка, например, к метрической системе, если игра обычный шутер на открытом пространстве и т.д. ?
4) Как правильно выбрать шаг между точками вертексного буфера Terrain ? Есть ли какие-то критерии ? ( понятно, что для больших холмов, гор и равнин могут быть разные подходы и расстояния между вертексами Terrain )

clcПостоялецwww6 дек. 201718:24#1
1,2 - выставляются единые метрики, задаются пропорции
3,4 - (шаг сетки) индивидуально, зависит от терейна и техник вывода
bykabakПостоялецwww6 дек. 201718:35#2
выставляются единые метрики, задаются пропорции

Как именно выставляются и где ?  Можно ли тут подробнее, или ссылку где почитать ( на любом языке )

В 3D моделях хранятся данные о её размерах в какой-нибудь системе или просто её scale ?

Правка: 6 дек. 2017 18:37

tacПостоялецwww6 дек. 201719:18#3
bykabak
> В 3D моделях хранятся данные о её размерах в какой-нибудь системе или просто её
> scale ?

там просто координаты полигонов

IvashkaПользовательwww6 дек. 201721:31#4
Создаются стандарты, например виды окон в здании их размеры, виды дверей и их размеры и т.д. Т.е. Нужны чёткие стандарты мира, тогда меньше несостыковок между разными видами обьектов. Стандарты задаются разработчиком.

Правка: 6 дек. 2017 21:33

bykabakПостоялецwww6 дек. 201722:20#5
Я вот смотрю Ue4 у них Terrain - шаг между вертексами где-то 1 метр - фиксированный.
clcПостоялецwww6 дек. 201722:28#6
лол, у них 1.0 == 1 метру, а не шаг 1 метр
bykabakПостоялецwww6 дек. 201722:52#7
Что значит 1.0 == 1 метру ?  1.0f по оси X или Z == 1 метру ?

Правка: 6 дек. 2017 22:56

tacПостоялецwww7 дек. 20172:04#8
bykabak
это значит, что отрезок между числами 0 и 1, будет считаться одним метром в данной конкретной программе/редакторе/движке
RikkПостоялецwww7 дек. 20172:13#9
bykabak
> 1) Модели создаваемые в 3D редакторах имеют привязку к какой-нибудь системе
> координат

да. имеют.

иначе бы при импорт-экспорт не корЁЁжились бы модели 3д.
совместимость форматов. типа супер моделлер обучился по видеоурокам и сделал obj.файл в блендер . потом супер разработчик обучился по видеоурокам и вставляет этот obj в UE
obj блендер=obj движок
obj слева=obj справа
obj.=obj.
так устраняются проблемы. совместимость по форматам
пакет3д=движок работа с 3д-файлами каких-то форматов


bykabak
> и хранят эти данные в своём теле,
да

bykabak
> Как глобально устанавливать масштаб для всех моделей
в 3д-пакете блендер

bykabak
> учитывать их при импорте в игровой движок ?
в движке настройки файлов

bykabak
> Terrain в мире игры и какая их привязка, например, к метрической системе,
real world model
1метр в движке=1 метр в 3д-пакете блендер

bykabak
> Есть ли какие-то критерии ?
real world model
1метр в движке=1 метр в 3д-пакете блендер
потом масштаб крутить 0.00001х или 100500х

Правка: 7 дек. 2017 2:19

gkv311Постоялецwww7 дек. 20176:47#10
bykabak
1) Модели создаваемые в 3D редакторах имеют привязку к какой-нибудь системе координат и хранят эти данные в своём теле, или они абстрактно рисуются в диапазоне от 0.0f до 1.0f, или от -1.0f до 1.0f и при импорте с их масштабом обычно что-то делают ?

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

Некоторые приложения позволяют выбирать единицы, в которых будет представлена модель в памяти и/или отображать в интерфейсе пользователя (тут может применяться конвертация на лету), и могут предлагать вариант "да какие сам придумаешь":
https://wiki.blender.org/index.php/User:Rayek/Doc:2.6/Manual/Interface/Units

Blender's default unit of measurement, the "Blender Unit", has no real-world equivalent. The Blender unit may be taken to represent any unit you prefer or imagine.

А вот форматы моделей бывают разные.
Такие как OBJ - безразмерные, не предусматривают информации об используемых единицах измерения внутри самого файла и не задают оных в описании формата.
Импорт/экспорт модели из OBJ - просто гадание, или соглашение внутри проекта. Для большого проекта обычно пишется свой плагин экспорта модели из используемого редактора в формат модели самого проекта, учитывающий его особенности.
Форматы вроде JT определяют единицы длины внутри файла, поэтому приложение читающее и пишущее JT должно выполнять конвертацию единиц, чтобы корректно отобразить/сохранить модель.

Открытый формат glTF более прямолинеен - в стандарте явно указаны не только единицы (метры для длины и радианы для углов), но и система координат, которая является ещё одной головной болью импорта/экспорта, т.к. в разных приложениях приняты разные соглашения о том какая ось смотрит вверх:
https://github.com/KhronosGroup/glTF/blob/master/specification/2.… tem-and-units
Изображение

glTF uses a right-handed coordinate system, that is, the cross product of +X and +Y yields +Z. glTF defines +Y as up. The front of a glTF asset faces +Z.

The units for all linear distances are meters.

All angles are in radians.

Positive rotation is counterclockwise.

Правка: 7 дек. 2017 6:59

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

2001—2017 © GameDev.ru — Разработка игр