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

Воксельные миры (7 стр)

Страницы: 16 7 8 920 Следующая »
#90
7:08, 28 мая 2022

Aslan
> Уже из анотации видно, что твоя статья не по теме
то есть дальше аннотации ты читать не пробовал? гуляние по octree без стека и без рекурсии реализуется одинаково хоть для плотных, хоть для разреженных, хоть на CPU, хоть для GPU, хоть в screenspace, хоть в worldspace. вся суть — в арифметике определения соседних узлов, ближайших родителей, итп — она везде одинаковая.

> Лишь бы ляпнуть
🤨 ты не попутал ничего, родной? я вообще-то не из теоретических соображений рассуждаю, все мои октри растеризаторы (из недавних) на этой технике основаны

#91
9:27, 28 мая 2022

Suslik
> то есть дальше аннотации ты читать не пробовал?
Проглядел бегло. Вижу что там PointCloud, Z-buffer в несколько слоев и репроекция
Так что твое "всё это уже придумали, и это реализуется умнее и быстрее, чем ты описал" - это да, лишь бы ляпнуть
> ты не попутал ничего, родной
Маори тебе родной, ахах

#92
9:44, 28 мая 2022

Репроекция - наше все

#93
9:46, 28 мая 2022

Зачем спорить, может устроим тест?

#94
9:55, 28 мая 2022

Salamandr
Жгите!

#95
19:50, 28 мая 2022

Suslik
> все мои октри растеризаторы (из недавних) на этой технике основаны
посмотрел видео (без негатива)

> Should the static storage be populated before the render? Or it can be generated on the fly?

> can be generated on the fly, it does not matter. however, the generation takes quite some time (this dataset took half an hour), so it would quickly become the bottleneck without optimization


в контексте Воксельные миры - как я понял, в случае с техникой Suslik предполагается "читерить" - и рендерить Lod-ы того что пока загружается при повороте камеры, и сам рендеринг "дерева вокселей" делать отложенным используя столько мощностей чтоб не выпадать из за минимум кадров(30фпс как пример)...

звучит как очень большая голованая боль с распределением всего этого, "по фану" яб такое не стал делать так как займет может и год(или больше), придется ведь весь рендер писать со всей логикой отрисовки и менеджмингом ресурсов

П.С.
> vulkan allows you to implement a very robust and reliable data transfer from CPU to GPU while using it during the same frame. the idea is that you store a small host coherent staging buffer that's always mapped, you write into it any data that you need transferred and then copy from this buffer into your gpu-local buffer

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

#96
23:10, 20 сен 2022

Подниму-ка тему

Все вы знаете о привлекательности вокселей для 3d графики, Wiki пишет, что Кармак в Id tech 6 планировал использовать воксели
Есть идея, как растеризовать трегольники непосредственно в SVO на этапе построения
Также есть идея, как эффективно растеризовать SVO без overdraw, SVO отлично подходит для culling.
Также SVO можно текстурировать затайленными 3d текстурами, так информация цвета не займет много места.

Но есть 2 проблемы:
1) как хранить нормали для расчета освещения, в каждом вокселе - слишком расточительно
2) занимаемый обьем
SVO можно ужать до ~ 2 bit/voxel, хранятся по сути, только поверхности тел, но всеже:
Квадрат 100х100 м при размере voxel 10 мм (куда уж больше) - уже 100 млн voxel, а в игровом уровне и размеры больше и много поверхностей различных обьектов, этак нехватит никакой памяти, ни video, ни RAM, это и сдерживает развитие воксельных движков.

С другой стороны, воксели получаются на этапе построения уровня из исходных полигональных или nurbs моделей, рендерингом в SVO, т.е. плоская стена превращается в миллионы вокселей, пустым копированием информации, там где достаточно одного уравнения плоскости.
Если на некоторой глубине oct-tree в узел попадает лишь один полигон, то какой смысл дальше его бить, надо с этим полигоном дальше и работать, в узле хранить его индекс, так растеризатор заодно сможет получить значение нормали в вокселе для расчет освещения.
Разумеется, остаются воксели, где сходятся 2 или более граней. Тут решением будет - или рандомно выбирать в качестве плоскости одну из граней или срезать углы, делать фаску, создавать вместо ребра или пересечения ребер  новую грань с усредненной нормалью. Оба этих варианта применимы, если воксель достаточно мал (1мм или сколько допустимая погрешность разрешения графики), но такие воксели уже будут только лишь вдоль ребер, а не граней, сократили размерность с 2D до 1D и кол-во вокселей, где раньше нужно было 1 млн, теперь 1 тыс!

Итак, обе проблемы решенны.

Что думаете?

#97
23:47, 20 сен 2022

Я вот всё хочу сделать minecraft с размером кубика 1 мм. Только есть одна проблема: такое возможность сделать теоретически. Ну вот как доходит дело до практики начинаются всякие трудности.

Начать хотя бы с рендера этих кубиков. Рисовать их по-честному треугольниками не получится и придётся рисовать каким-то другим более сложным способом.

Если посмотреть для примера voxlap. Там для хранения вокселей используется формат похожий на png где только записывается количество пустых пикселей количество полных пикселей и так вертикальными полосочками весь мир это в принципе довольно эффективно.

Можно конечно дерево использовать но в этом случаю кодирование через вертикальные полоски выглядят более эффективным.

Только вот в том же воксельном движке есть проблемы при большом приближении к вокселю у него на краях получаются лесенки довольно видимые шириной в 20 пикселей это явно артефакт рейтрейса.

#98
4:15, 21 сен 2022

Возможно ли отмасштабировать Teardown до размеров майнкрафта и при этом иметь возможности онлайн игры?

Представьте огромный мир майна совмещенный с физикой Teardown, игра мечты!

Что стоит на пути реализации такой идеи? Судя по видео тот же voxlap умеет в мультиплеер, наверно будут проблемы с освещением еще

#99
5:30, 21 сен 2022

LeonLeonMobo
> Возможно ли отмасштабировать Teardown до размеров майнкрафта и при этом иметь
> возможности онлайн игры?
Конечно, тебе надо всеголишь купить процик за пол ляма!

LeonLeonMobo
> Представьте огромный мир майна совмещенный с физикой Teardown, игра мечты!
1 Фпс игра мечты, мечтаешь о лагах?

LeonLeonMobo
> Судя по видео тот же voxlap умеет в мультиплеер
Только вот физики там нет.

#100
7:44, 21 сен 2022

LeonLeonMobo
> Представьте огромный мир майна совмещенный с физикой Teardown, игра мечты!
Представил, майнкрафт лучше.

#101
7:51, 21 сен 2022

Это был 1999-й...

Запустить видео по клику - Как делать игрыЗапустить видео по клику - Как делать игры

#102
8:28, 21 сен 2022

samrrr
> Я вот всё хочу сделать minecraft с размером кубика 1 мм
Ну, допустим сделаешь. На стороне куба в 1м уже будет миллион вокселей. И сколько таких кубов потянет твой движок, на 1 комнатушку хватит? А в minecraft хранится не svo, а весь обьем, каждый кубик и поэтому уровень легко разрушаемый, любой кубик можно убрать

> Рисовать их по-честному треугольниками не получится
Рисуй жырнопикселем, спрайтом с размытыми краями, так сгладятся безобразия воксельной лесенки

> Если посмотреть для примера voxlap. Там для хранения вокселей используется формат похожий на png где только записывается количество пустых пикселей количество полных пикселей и так вертикальными полосочками весь мир это в принципе довольно эффективно.
О(N^2) памяти, большой уровень так не закодируешь

#103
8:35, 21 сен 2022

LeonLeonMobo
Майкрафт сам неоптимальный и лагучий (и при лагах видно, как отрисовываются подземелья за км от игрока), так что там есть куда оптимизировать и улучшать
Ну и вот же выкладывали видео
https://gamedev.ru/code/forum/?id=252811&page=6&m=5345271#m76
Уже есть движки намного круче, с водой и кровищей, разрушаемые до последней песчинки

#104
8:41, 21 сен 2022

Aslan
> Майкрафт сам неоптимальный и лагучий (и при лагах видно, как отрисовываются
> подземелья за км от игрока), так что там есть куда оптимизировать и улучшать
Всем пофиг, тот же бедрок, переписанный на плюсах куда как оптимальнее, но народ играет в Java edition.

Страницы: 16 7 8 920 Следующая »
ПрограммированиеФорумГрафика

Тема в архиве.