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

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

Построенное по набору граней BSP-дерево разбивает все пространство на множество выпуклых областей, границами которых служат грани и плоскости разбиения.

Так, сцена с рис. 2.21 разбивается на 3 области - (1, 2', 5, 8'), (2", 3, 4) и (6, 7, 8"). Обратите внимание, что внутри каждой из получившихся частей нет необходимости в специальном упорядочении граней - в силу

Удаление невидимых поверхностей

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

Тем самым для правильного упорядочения граней внутри всей сцены достаточно лишь иметь разбиение всей сцены на набор выпуклых областей и затем упорядочить их при помощи BSP-дерева. Все лицевые грани в пределах каждой из таких областей выводятся в любом порядке.

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


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