Есть ли альтернатива сценографу?

Графы сцены дают вам возможность рассуждать об их положении -> если один узел не должен отображаться, дочерние элементы этого узла также не должны отображаться.

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

Мне было интересно, если есть совершенно другой подход к снижению сложности сцены?

1 ответ

Решение

если один узел не должен отображаться, дочерние узлы этого узла также не должны отображаться.

Это неправда. Подумайте о том, что родительский узел лишь немного не виден, а ребенок - явно в поле зрения.

Сценографы не являются инструментом для определения видимой / невидимой геометрии. Сценографы управляют геометрическими, трансформационными иерархиями между объектами. Галактики → Звезды → Планеты → Луны или что-то подобное.

То, о чем вы на самом деле думаете, это не графы сцен, а Bieing Volume Hierachies (BVH), которые представляют собой совершенно другую концепцию. Да, вы можете смешивать BVH с данными Scenegraph, и обычно это делается, но они используются по-другому.

Но кажется, что это может быть не лучшим подходом, если объекты в сцене постоянно меняют положение, поэтому вам всегда нужно обновлять график сцены BVH.

Это действительно так. Из-за этого структуры BVH являются темой текущих исследований, в основном сфокусированных на адаптивной модификации BVH, где вам не нужно перестраивать весь BVH, это только подмножество изменений. Однако BVH по своей природе являются структурами дерева поиска, и для эффективности поиска необходимо сбалансировать дерево поиска, что само по себе может быть дорогостоящей операцией.

Таким образом, необходимо найти компромисс между стоимостью восстановления всего дерева или его балансировки.

С другой стороны, некогда столь необходимая совершенная дискриминация невидимой поверхности, которая требовалась во времена программных растеризаторов, давно прошла.

Сейчас мы живем во времена, когда графические процессоры имеют значительные резервы для переполнения, и подход "чем хуже, тем лучше" часто дает хорошие результаты. Очень хороший подход - позволить GPU и CPU сотрудничать в обходе очень простой, только слабо соединенной BVH, основанной на выровненных ограничительных осях (AABB), в которых узлы дерева перекрываются, и видимость подобъема можно проверить, отправив грани AABB на графический процессор для пробного рендеринга, который не производит пикселей, но собирает статистику, сколько, если какой-либо из ограничивающего объема будет фактически нарисован. Сейчас это очень популярный метод, и он дает очень хорошие результаты.

Другие вопросы по тегам