Открытый бесшовный мир с indoor и outdoor, 3d.
Сабж для:
1. Visibility test
2. Raycast
3. Physics физикой занимается bullet
Как сейчас сделано: мир состоит из indoor areas (комнаты), area portals (двери, соединения между комнатами) и одной большой outdoor area для всего открытого пространства. Структурно это выглядит так:
World {
Vector<Area> indoor;
Area outdoor;
};
Area {
ConvexVolume volume;
Vector<PortalPtr> Portals;
Vector<ObjectPtr> Objects;
}Ко всему нужно добавить octree. Лучше сделать один общий octree для всего мира или для каждой area свой octree или только для outdoor area?
0xc0de
> Лучше сделать один общий octree для всего мира или для каждой area свой octree
> или только для outdoor area?
что бы что ? Ты какую проблему вообще решаешь ?
Misanthrope
> что бы что ? Ты какую проблему вообще решаешь ?
Читай внимательно:
Сабж для:
1. Visibility test
2. Raycast
3. Physics физикой занимается bullet
Ну зависит от количества объектов/типа сцены. В первой Мафии всё было похоже на то, как ты описываешь, но плюс к этому:
- аутдор был поделён на клеточки (не октри, просто 2д грид), к ним привязывались ресурсы, по ним сперва топали рейкасты.
- в здания были вставлены окклюдеры, т.е. антипорталы - кубоидные меши, которые проецировались вдаль от камеры и хайдили всё за собой.
- активно юзалась иерархия, одни объекты были прилинкованы к другим и, насколько я понял, внутри индора/аутдор клетки, сперва чекались паренты, потом чилды.
0xc0de
> Читай внимательно:
>
> Сабж для:
> 1. Visibility test
> 2. Raycast
ну тогда оба варианта подходят, и у обоих вариантов есть как плюсы так и минусы.
Mr F
> активно юзалась иерархия, одни объекты были прилинкованы к другим и, насколько
> я понял, внутри индора/аутдор клетки, сперва чекались паренты, потом чилды.
Т.е. в каждой клетке отдельное BVH tree?
В GTA 5 сделано так
1) Чанки и патчи
2) Окклюдеры (скалы, небоскребы, тоннели)
3) LOD для апдейтов и прочее
4) Туман
Ты где-нибудь видел открытый мир, который открыт визуально, а не только логически?
lookid
> Ты где-нибудь видел открытый мир, который открыт визуально, а не только
> логически?
Везде небольшой туманчик, либо atmosphere scattering. Например arma, rage2.
Но сеттинг больше нравится в Skyrim
u960
> а есть где нить подробнее информация?
В различных доках от моддеров/реверсеров. Прямо вот по partitioning'у отдельной странички нигде нет - информация собрана по крупицам с реверсинга разных форматов файлов, написания импортеров/экспортеров и анализа поведения движка.
0xc0de
> Т.е. в каждой клетке отдельное BVH tree?
Не могу сказать со 100% уверенностью, но выглядит так, что да.
lookid
> В GTA 5 сделано так
а у тебя есть гденить подробнее информация почитать?)
в Assins Creed Odyssey очень хорошая дальность прорисовки ландшафта, сейчас в игре я разбил просто карту на чанки и рисую что в кадр попадает, в farcray когда то дебагингом разбир как они рендерят, там они четко по фрустуму рендерили карту, так и не разобрался до конца как это устроено, тоже очень интересна эта тема.
WoW представляет из себя открытый мир, так что подходит под описание.
Так вот, в WoW каждая карта поделена на сетку 64x64. (Каждая ячейка - ADT файл )
(Каждая ячейка сетки - 533.(3) в длину и ширину, 1 единица in world space = 0,9144 метра)
Так же каждая ячейка сетки - представлена картой вершин и 2 массивами объектов: WMO и M2(по расширению файлов моделек)
M2: анимированные static mesh'и
WMO: Стоит из главного WMO файла и групповых WMO. Каждый групповой WMO - это static mesh', который может быть помечена как Exterior или Interior. Так же между Exterior-Interior и Interior-Interior группами могут порталы. В главном WMO файле лежит инфа о материалах, порталах и relations between portals. А в группах идет только ссылка на них.
И самое главное, каждый главный WMO может содержать массив своих M2 объектов.
-————————————————-
Порталы позволяют близзам создавать геометрию, которая снаружи выглядят небольшой, а внутри - гигантские лабиринты. Пример - https://youtu.be/PBpRv9EXaxk?t=195
Кроме того, количество M2 объектов на сцене может быть очень большим, поэтому близзы сортируют M2 файлы по высоте по bracket'ам, соортируют по дальности от камеры внутри bracket'а и рисуют только первые N объекта внутри каждого bracket'а.
lookid
> В GTA 5 сделано так
точнее описано тут http://www.adriancourreges.com/blog/2015/11/02/gta-v-graphics-study/ (в трех частях с картинками)
Татарин
> в Assins Creed Odyssey очень хорошая дальность прорисовки ландшафта
плюсую, там очень круто сделали
Татарин
> тоже очень интересна эта тема.
помоему самое интересное на текущий момент в Думе http://www.adriancourreges.com/blog/2016/09/09/doom-2016-graphics-study/
для меня удивительно как они осилили такое сделать
0xc0de
Какая у тебя игра? Ну вон готика 2 вроде игра с открытым свободным миром и рпг, но там все на indor подходах. Типа весь мир в виде нескольких комнат с небом сделан и в целом норм. Локации связаны порталами. Я думаю это единственный адекватный по трудозатратам и когерентности подход.
Единственный минус - ты не посмотришь на мир с верхней точки (или это уже будет не оправданно сложнее) и высокой ливитации не будет. Ну и есть некоторые ограничения допустимых типов локаций игры
Тема в архиве.