Сложнее заполнять последний уровень

damik
на Intel HD 3000 пойдет?
Misanthrope
Вряд ли. У автора какая-то из старших нвидий судя по твиттеру. https://twitter.com/ProgrammerLin
абсолютно ничего нового, что уже не применялось в играх
в целом как мегатекстуры, направленно скорее на артовиков
Продублирую свои тезисы из лички:
Если K число нелистовых узлов октодерева, а N число листовых, то
8×K=K+N-1
N=7×K+1
Логически есть листы - полные или пустые воксели
Но хранить их проще в виде 8 бит в родителе
Пока такое придумал:
4 вида узла: solid voxel, empty voxel, Subtree, Patch (8 детей voxel)
Для Subtree храним маску 16 бит (тип 2 бит для 8 детей) и указатель 32 бит = 48 бит
Для Patch храним маску 8 бит (solid/empty) и все
Узлов, которые имеют среди детей Subtree - их меньше, чем самих Subtree, 1/8 от общего числа узлов
Остальные 7/8 - Patch по 8 бит
В среднем получаем 48/8+7/8*8=13
А общее число узлов, как помним, 1/7 от числа листьев
13/7<2 бит/воксел
Дети (8 штук) выделяются единным куском размером от 8 до 48 байт
При рейкасте надо переходить к соседнему по коорд оси voxel
В среднем намного короче идти не от корня дерева, а снизу вверх до общего родителя, а потом вниз
X координата корня 0 -
X координаты узлов 1го уровня: 0, 1
X координаты узлов 2го уровня: 00, 01, 10, 11 итд
столько бит, каков уровень
узел I и сосед J, пропускаем сверху столько уровней дерева, сколько лидирующих 0 в I xor J
индекс voxel можно уместить в int64 - по 20 бит на xyz и 4 - уровень
Aslan
всё это уже придумали, и это реализуется умнее и быстрее, чем ты описал: https://jankautz.com/publications/AcceleratedSSRT_HPG15.pdf
например, там не совсем xor для определения общего родителя, всё расписано предельно подробно. нет смысла изобретать велосипед для того, что уже придумано и работает хорошо, там хватает ещё что можно велосипедить, используя это. например, в листьях гораздо круче хранить не просто воксели и не плоскости (как они делают), а разного рода плотные структуры данных: 8x8x8 brick map'ы, sdf, мешлеты и тому подобное.
Suslik
Screen space это то вообще?
Aslan
какая разница, маршировка октри везде одинаковая
invis
> Сейчас заметил что в Команче
помню Команч в 98 на P133 - опупеть :)
innuendo
В DeltaForce еще был воксельный ландшафт
И в F22 незнаю какой, но бескрайний
damik
Фига себе, убийца Майнкрафта!
Suslik
Уже из анотации видно, что твоя статья не по теме
> всё это уже придумали, и это реализуется умнее и быстрее, чем ты описал
Лишь бы ляпнуть
innuendo
> помню Команч в 98 на P133 - опупеть :)
Я про Команч 92-го года, он делался под 386-486, наверное.
https://github.com/s-macke/VoxelSpace
invis
