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

Quadtree mesh и корректный frustum culling (5 стр)

Страницы: 1 2 3 4 5 6 7 Следующая »
#60
(Правка: 15:46) 15:44, 17 сен 2022

Kripto289
А сколько этих блоков размера 32?
Суммарно в них вершин не меньше, чем в кадре
> Или ты подумал что я генерирую для каждого узла
У тебя весь океан из одного блока?

#61
(Правка: 15:52) 15:49, 17 сен 2022

Aslan
> А сколько этих блоков размера 32?
14

Aslan
> У тебя весь океан из одного блока?
Ну для 20 километров quadtree у меня видно порядка ~100 узлов. Значит я собираю массив 100 квадов * (32 * 32)
Мне не надо ничего генерировать, у меня есть массив данных. Просто из 100 таких массивов я собираю один общий тупым копированием элементов. Для небольших сеток и минимальным набором lod это должно быть очень быстро. Но мне нравится вариант вообще отказаться от VBO и инстансингом всё рисовать.

#62
20:25, 17 сен 2022

Aslan
> Жесть, 14х памяти и 14 раз генерировать, еще удивляешся откуда тормоза
Даладно, я вообще все стыки генерю. их тысяч 5 различных.

Kripto289
> Или ты подумал что я генерирую для каждого узла? Тогда у меня памяти на компе
> не хватит.
Ну купи плашечку на 1 гб тогда, этого точно хватит.

#63
20:34, 17 сен 2022

samrrr
> Ну купи плашечку на 1 гб тогда, этого точно хватит
В видеокарту?

#64
22:17, 17 сен 2022

Kripto289
А можно фото или видео, что получилось?

#65
(Правка: 23:17) 23:04, 17 сен 2022

Хрен его знает у меня не так вообще, у тебя как то узлы пачками генераться одной и той же детализации, и по сути это не продуктивно, а у меня каждый узел разбиваеться при растоянии в 2 раза меньшем чем предыдущий, выходит более оптимально, без полей узлов одной и той же детализации.
Изображение
Изображение

#66
23:08, 17 сен 2022

Ivashka
Всегда будут поля равной детализации, вроде на расстоянии от 1 до 2 км, от 2 до 4 итд

#67
23:11, 17 сен 2022

Kripto289
> Блин крутая идея.
У этой идеи есть развитие: меш в зависимости от параметра умеет непрерывно деформироваться в более грубый (не только на краях, но и везде), в качестве параметра используется расстояние до камеры. В итоге не только идеальное совпадение по краям, но и переключения детализации абсолютно незаметны.

#68
(Правка: 23:28) 23:22, 17 сен 2022

Кстати при правильном проходе вариантов сшивания всего 16 штук (т.е. это 16 индексных буферов всего использовать).

#69
23:25, 17 сен 2022

}:+()___ [Smile]
Это получается lerp-ить вершины  узла с его родителем в квадтри в vert shader

#70
23:29, 17 сен 2022

Aslan
> от 1 до 2 км, от 2 до 4 итд
Вот надо расчитывать так, что бы эти растояния состовляли размер одного квада.

#71
23:31, 17 сен 2022

Ivashka
Можно же выбрать один вариант при генерации узла, если считать уровень Lod отдельно для каждой стороны (по мин расстоянию до ее концов), у узла будем мах уровень из них, на сторонах где уровень меньше генерир переход

#72
0:10, 18 сен 2022

Ivashka
У тебя проблемы на стыках.

#73
(Правка: 0:27) 0:20, 18 сен 2022

Ivashka
Если игрок в каком-то узле и этот узел поделили на 4 - вот уже 4 соседа с одним лод
Притом можно держать все узлы в одном vbo и отрисовывать лишь нужные одним вызовом glMultiDrawElement
У меня сделан пул свободных "ячеек" в vbo, ячейка - диапазон адресов для хранения одного узла,

#74
0:59, 18 сен 2022

Aslan
> Это получается lerp-ить вершины узла с его родителем в квадтри в vert shader
Не обязательно именно lerp (в смысле, линейно). Также не обязательно явно генерировать узлы родителей, можно использовать алгоритм генерации, где это получается автоматически (грузить карту высот по мип уровню и т. п.). Но, в принципе, да, примерно так.

Страницы: 1 2 3 4 5 6 7 Следующая »
ПрограммированиеФорумГрафика