Еще одним недостатком метода порталов является его ограниченная применимость. Этот метод хорошо подходит лишь для сцен, являющихся внутренностями архитектурных сооружений, а для ряда других типов сцен (например, ландшафтных) практически неприменим.
Множества потенциально видимых граней (PVS)
Одним из подходов, активно использующихся для определения видимости в сложных сценах, является метод, который после разбиения сцены на набор фрагментов (обычно выпуклых) заранее (на этапе подготовки сцены) для каждого такого фрагмента строит список граней, видимых из него. Такие списки называются множествами потенциально видимых граней (Potentially Visible Set - PVS). Первой игрой, успешно применившей подобный подход, была игра Quake.
Как и в методе порталов, сперва сцена разбивается на множество выпуклых комнат. После этого для каждой такой комнаты строится список всех граней, которые может увидеть наблюдатель, находящийся внутри данной комнаты. При этом, учитываются всевозможные положения и ориентации наблюдателя внутри комнаты и строится максимальное множество видимости - все, что может быть видно хотя бы для каких-то одних положения и ориентации наблюдателя внутри комнаты. После того как для всех комнат такие множества построены, они сохраняются и в дальнейшем используются при рендеринге всей сцены.
Метод рендеринга в данном случае крайне прост - определяется, в какой комнате находится наблюдатель, и определяется соответствующее
Удаление невидимых поверхностей
множество потенциально видимых граней. Используя информацию о точных местоположении и ориентации наблюдаетеля, можно отбросить из этого множества заведомо невидимые грани (нелицевые и не попадающие в область видимости наблюдателя). После этого для точного определения видимости среди оставшихся граней используется один из традиционных методов определения видимости - например, метод г-буфера.
При этом довольно часто для разбиения всей сцены на набор выпуклых комнат используется BSP-дерево. Именно этот подход и применялся во всех играх Quake. Реализации рендеринга для уровней из игры Quake 2 рассматриваются в гл. 11.