МЕТОД СОРТИРОВКИ ПО ГЛУБИНЕ
Используя процедуры, определенные в пространстве объектов и пространстве изображений, метод сортировки по глубине реализует следующие базовые функции.
1. Поверхности сортируются в порядке уменьшения глубины.
2. Поверхности упорядочиваются согласно стандарту развертки, начиная с наиболее глубокой поверхности.
Рис. 9.12. Две поверхности без наложения по глубине Операции сортировки выполняются и в пространстве изображений, и в пространстве объектов, а преобразование многоугольных поверхностей в стандарт развертки выполняется в пространстве изображений.
Данный метод исследования видимых поверхностей часто называется алгоритмом художника. При создании акварельной или масляной картины художник вначале наносит фоновые цвета. Затем добавляются наиболее удаленные объекты, потом более близкие объекты и т.д. На заключительном этапе на холсте поверх фона и более удаленных объектов рисуются предметы переднего плана. Каждый слой цвета закрывает предыдущий уровень. С помощью подобной техники поверхности вначале сортируются согласно их расстоянию от плоскости наблюдения. Затем в буфер регенерации вводятся коды цветов наиболее далекой поверхности. При обработке каждой последующей поверхности (в порядке уменьшения глубины) мы “рисуем” поверхность в буфере кадров поверх цветов ранее обработанных поверхностей.
Упорядоченное рисование многоугольных поверхностей в буфере кадров выполняется в несколько этапов. Предполагая, что сцена наблюдается по направлению оси г, при первом проходе алгоритма поверхности упорядочиваются согласно наименьшему значению г каждой поверхности. Затем поверхность 5 в конце списка (с наибольшей глубиной) сравнивается с другими поверхностями списка, и определяется, перекрывается ли она с ними по глубине. Если нет, 5 - наиболее удаленная поверхность, и она преобразовывается в стандарт развертки. В качестве примера на рис. 9.12 показаны две поверхности, накладывающиеся на плоскости ху, но не имеющие перекрытия по глубине. Затем данный процесс повторяется для следующей поверхности списка. Если перекрытия не наблюдается, поверхности обрабатываются в порядке, определяемом глубиной, пока все они не будут преобразованы в стандарт развертки. Если для некоторой позиции списка обнаруживается перекрытие по глубине, необходимы дополнительные сравнения, чтобы выяснить, нужно ли переупорядочить какие-либо поверхности.
Рис. 9.13. Две поверхности с перекрытием по глубине, но без перекрытия ПО ОСИ X
Для каждой поверхности, перекрывающейся по глубине с 5, выполняются следующие проверки. Если в любой из этих проверок получен положительный ответ, значит, переупорядочения выполнять не нужно, и поверхность 5 прошла проверку. Проверки перечислены в порядке увеличения сложности.
1. Ограничивающие прямоугольники (координатные границы) двух поверхностей в направлениях х и у не перекрываются.
2. Поверхность 5 полностью расположена за некоторой поверхностью относительно точки наблюдения.