Изменения

Перейти к: навигация, поиск

BSP-дерево

85 байт добавлено, 19:41, 17 января 2015
BSP-деревья и алгоритм художника
Пусть <tex>p_{view}</tex> {{---}} точка обзора, и она лежит над разбивающей плоскостью, хранимой в корне <tex>T</tex>.
Тогда ни один из объектов, лежащих под этой плоскостью, не может перекрыть ни один из объектов, лежащих выше нее. Таким образом, мы можем безопасно показать отрисовать фрагменты объектов из поддерева <tex>T^-</tex> до показа отрисовки объектов из поддерва <tex>T^+</tex>.
Порядок фрагментов объектов в поддеревьях определяется таким же способом.
<tex>v \leftarrow T.root</tex>
if <tex>v</tex> is a leaf
Scan-convert the object fragments in отрисовать фрагменты объектов из <tex>S(v)</tex>.
else if <tex>p_{view} \in h_v^+</tex>
painters_algorithm(<tex>T^-</tex>, <tex>p_{view}</tex>)
Scan-convert the object fragments in отрисовать фрагменты объектов из <tex>S(v)</tex>.
painters_algorithm(<tex>T^+</tex>, <tex>p_{view}</tex>)
else if <tex>p_{view} \in h_v^-</tex>
painters_algorithm(<tex>T^+</tex>, <tex>p_{view}</tex>)
Scan-convert the object fragments in отрисовать фрагменты объектов из <tex>S(v)</tex>.
painters_algorithm(<tex>T^-</tex>, <tex>p_{view}</tex>)
else /∗ <tex>p_{view} \in h_v</tex> ∗/
Анонимный участник

Навигация