On-Line Библиотека www.XServer.ru - учебники, книги, статьи, документация, нормативная литература.
       Главная         В избранное         Контакты        Карта сайта   
    Навигация XServer.ru








 

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

Удаление скрытых поверхностей (hidden surface removal - HSR)  -  комплексный
механизм, служащий для уменьшения числа треугольников,  которые будут участ-
вовать в рендеринге, а также правильном рендеринге с точки зрения глубины.

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

1) Отсечение (clipping). Отбрасываются все треугольники, которые не попадают
в объем отсчечения (clip volume),  который  ограничен  шестью плоскостями по
трем координатам. Это важнейший метод HSR, который выполняется всегда.
2) Отбрасывание задних граней (backface culling). Выполняется проверка, куда
"смотрит" треугольник. Это возможно, так как у каждой вершины есть нормаль и
поэтому все треугольники являются ориентированными в пространстве. Если тре-
угольник смотрит "на наблюдателя", он считается видимым, а если "от наблюда-
теля" - то невидимым.  Это позволяет снизить вдвое число видимых треугольни-
ков, например для вывода сферы, состоящей из треугольников, необходимо срен-
дерить только треугольники,  составляющие полусферу,  которую видит наблюда-
тель.
3) BSP-деревья.  Программный метод HSR  для статической геометрии,  например
уровней в 3D-шутере.  Цель BSP-деревьев - упорядочение треугольников спереди
назад (front-to-back)  и  определение  тех треугольников,  которые полностью
закрываются другими.

После того, как осталось минимум треугольников,  надо их срендерить,  причем
так, чтобы видимые пикселы были видимы, а невидимые - невидимы.
1) Z-буферизация (z-buffering). См. соотв. термин.
2) Z-сортировка (z-sorting). Z-сортировка - менее аккуратный программный ме-
тод  удаления скрытых поверхностей по сравнению с z-буферизацией,  также из-
вестный   как   алгоритм   Паинтера.   Объекты  сортируются   сзади  наперед
(back-to-front). Более удаленные объекты рендерятся в первую очередь, за ни-
ми следуют менее удаленные. Если объекты пересекают друг друга, то ближайший
накладывается на дальнего, то есть происходит z-алиасинг.
Назад       Содержание       Вперёд