Еще одной особенностью листового BSP-дерева заключена в том, что в листовом дереве листья могут быть представлены другим классом объектов, чем внутренние узлы.

В играх DOOM и Quake были использованы именно листовые BSP-деревья.

Метод порталов Существует достаточно простой подход, позволяющий прямо на ходу определять видимость граней, не прибегая к помощи BSP-деревьев. Разобьем сцену на набор выпуклых областей и рассмотрим, как эти области соединены между собой. Те соединения, через которые можно видеть (окна, дверные проемы), называются порталами.

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

щие данную ячейку с соседними. Если какие-то грани и могут быть видны, то только через эти порталы. Поэтому выделим области, соединенные с текущей областью порталами, и в них те грани, которые видны через соединяющие их порталы. Далее для областей, соседних с начальной, рассмотрим соседние области. Они также могут быть видны только через соединяющие порталы. Поэтому выделим те грани, которые могут быть видны (теперь уже через два последовательных портала), и т. д. Подобным путем можно легко построить некоторое множество граней, потенциально видимых из данной точки. Возможно, этот список окажется несколько избыточным, но тем не менее он будет заметно меньше, чем общее число граней.

Рассмотрим сцену, представленную на рис. 2.25. Порталы обозначены пунктирными линиями.

Пусть наблюдатель находится в комнате 0-1-2-27-28. Очевидно, что он видит все лицевые грани в этой комнате. Кроме того, через портал 3-26 он видит комнату 3-4-25-26, а через портал 4-25, - комнату 4-5-6-7-16-17-24-25 и т. д.

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

Рассмотрим комнаты, соединенные порталами с комнатами, соседними с начальной, и нарисуем те их лицевые грани, которые видны через суперпозицию (пересечение) сразу двух порталов, ведущих в соответствующую комнату, и т. д. Если пересечение порталов пустое множество, то данная комната из начальной точки, где находится наблюдатель, не видна.


⇐ Предыдущая| |Следующая ⇒