Согласен, но из бесконечности вселенной не следовало бы бесконечное количество "сгустков"
Плюс с бесконечным количеством материи=энергии тепловая смерть вселенной была бы невозможна (может так и есть :) ) Мне про бесконечно-вечность больше CCC Пенроуза нравится, хотя я это только концептуально понимаю
Это только если в бесконечной вселенной бесконечно много материи
Ну в общем-то ты попросил "псевдоалгоритм проверки 2д пространства камеры на наличие AABB".
Но occlusion culling для меня - это использование depth pyramid и отсечение мешей (или кластеров/треугольников) в compute шейдерах. Возможно, с предварительным отсечением по frustum с использованием quadtree или тех же compute шейдеров.
А как, и главное зачем делать occusion culling в quadtree мне неизвестно, но я очень сомневаюсь, что это может быть эффективнее простого чтения глубины из depth pyramid
вот твоя предыдущая картинка, поверх которой я нарисовал поле видимости камеры
quadtree - это же не статический объект, структура меняется при добавлении/удалении/перемещении объектов, в чем смысл делить на уровни пустое дерево?
То есть, в quadtree - объекты (их aabb), зачем делить пространство под поле видимости камеры?
Проверяю верхние уровни quadtree:
если ячейка содержится в frustum полностью, то все объекты, входящие в её дочерние ячейки тоже в frustum
если ячейка не имеет пересечения, то и объекты тоже
если пересечение частичное, то решаем рекурсивно или через стек(очередь)
Смысл nanite не в том, что есть кластеры, а в том, что эти кластеры постоянно меняются (причем без видимых стыков) для поддержания необходимого уровня детализации.
Получается что-то вроде "непрерывного" lod, а так и обычный меш можно назвать "простейшим аналогом nanite", с одним кластером
Уровни же не по волшебству появляются
1 объект - 4 узла.
2 объекта - 8 узлов (максимум).
3 объекта - 12 узлов (максимум).
В худшем случае необходимо проверить все (то есть 4n), но экспоненциального роста проверок от числа элементов тут быть не может
я уже ниже про это писал, но, например, в презентации "Rendering 'Rainbow Six | Siege'", на слайде 33 видно, что куллинг они производят и на уровне отдельных треугольников
а пример можно, где время поиска узла в quadtree растет экспоненциально от количества узлов?
Совершенно не обязательно проводить culling на процессоре