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

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

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

Очевидно, что каждая комната, непосредственно соединенная с данной при помощи портала, будет видна - так, комната dstLeaf всегда будет видна из комнаты srcLeaf через соединяющий их портал (рис. 2.28).

А. В. Боресков. Гоафика трехмерной компьютерной игры

Поэтому задача заключается в определении того, какие из комнат, соединенных с Л/^а/при помощи порталов (кроме агсЬеа/), также будут видны.

Для определения того, может ли комната genLeaf быть хотя бы частично видимой из ягсЬеа/ через пару порталов - БгсРоПа1 и ЛгАзлга/, построим по этой паре порталов антитень (рис. 2.29).

Антитень - это область пространства по другую сторону от (ізіРоПаї, ограниченная следующим набором плоскостей: через каждую вершину одного из порталов и каждое ребро другого портала проводится плоскость. При этом в построении антитени участвуют тольке те плоскости, для которых образующие их порталы лежат по разные стороны (рис. 2.30).

Тогда часть комнаты genLeaf, лежащая в построенной антитени, будет видна из исходной комнаты ^гс/.еа/ через пару порталов хгсРогШ! и (ЬгРоПа1. Далее рассматриваем другие комнаты, непосредственно соединенные с genLeaf при помощи порталов. Порталы, хотя бы частично не попадающие в антитень, сразу же отбрасываются, как заведомо невидимые (рис. 2.31).


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