Войти
ПрограммированиеФорумГрафика

OpenWorld space partitioning

#0
16:31, 11 июля 2019

Открытый бесшовный мир с 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?


#1
16:45, 11 июля 2019

0xc0de
> Лучше сделать один общий octree для всего мира или для каждой area свой octree
> или только для outdoor area?
что бы что ? Ты какую проблему вообще решаешь ?

#2
16:59, 11 июля 2019

Misanthrope
> что бы что ? Ты какую проблему вообще решаешь ?

Читай внимательно:

Сабж для:
1. Visibility test
2. Raycast
3. Physics физикой занимается bullet

#3
(Правка: 17:48) 17:48, 11 июля 2019

Ну зависит от количества объектов/типа сцены. В первой Мафии всё было похоже на то, как ты описываешь, но плюс к этому:
- аутдор был поделён на клеточки (не октри, просто 2д грид), к ним привязывались ресурсы, по ним сперва топали рейкасты.
- в здания были вставлены окклюдеры, т.е. антипорталы - кубоидные меши, которые проецировались вдаль от камеры и хайдили всё за собой.
- активно юзалась иерархия, одни объекты были прилинкованы к другим и, насколько я понял, внутри индора/аутдор клетки, сперва чекались паренты, потом чилды.

#4
17:48, 11 июля 2019

0xc0de
> Читай внимательно:
>
> Сабж для:
> 1. Visibility test
> 2. Raycast
ну тогда оба варианта подходят, и у обоих вариантов есть как плюсы так и минусы.

#5
19:03, 11 июля 2019

Mr F
> В первой Мафии всё было похоже на то, как ты описываешь, но плюс к этому:
а есть где нить подробнее информация?

#6
19:08, 11 июля 2019

Mr F
> активно юзалась иерархия, одни объекты были прилинкованы к другим и, насколько
> я понял, внутри индора/аутдор клетки, сперва чекались паренты, потом чилды.
Т.е. в каждой клетке отдельное BVH tree?

#7
19:14, 11 июля 2019

В GTA 5 сделано так
1) Чанки и патчи
2) Окклюдеры (скалы, небоскребы, тоннели)
3) LOD для апдейтов и прочее
4) Туман

Ты где-нибудь видел открытый мир, который открыт визуально, а не только логически?

#8
(Правка: 19:24) 19:22, 11 июля 2019

lookid
> Ты где-нибудь видел открытый мир, который открыт визуально, а не только
> логически?
Везде небольшой туманчик, либо atmosphere scattering. Например arma, rage2.

Но сеттинг больше нравится в Skyrim

#9
21:53, 11 июля 2019

u960
> а есть где нить подробнее информация?
В различных доках от моддеров/реверсеров. Прямо вот по partitioning'у отдельной странички нигде нет - информация собрана по крупицам с реверсинга разных форматов файлов, написания импортеров/экспортеров и анализа поведения движка.

0xc0de
> Т.е. в каждой клетке отдельное BVH tree?
Не могу сказать со 100% уверенностью, но выглядит так, что да.

lookid
> В GTA 5 сделано так
а у тебя есть гденить подробнее информация почитать?)

#10
19:25, 12 июля 2019

в Assins Creed Odyssey очень хорошая дальность прорисовки ландшафта, сейчас в игре я разбил просто карту на чанки и рисую что в кадр попадает, в farcray когда то дебагингом разбир как они рендерят, там они четко по фрустуму рендерили карту, так и не разобрался до конца как это устроено, тоже очень интересна эта тема.

#11
19:48, 12 июля 2019

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'а.

#12
5:50, 13 июля 2019

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/
для меня удивительно как они осилили такое сделать

ПрограммированиеФорумГрафика