7.5.3. Отсечение в буфере кадра Конечно, выполнение отсечения можно и отложить до этапа растрового преобразования и заполнения буфера кадра, но целесообразнее каким-либо способом все-таки отсеять те объекты, которые явно не вписываются в заданную зону видимости, а на последнем этапе выполнять отсечение только тех из них, которые по самой своей природе являются растровыми, в частности блоков пикселей. Такие объекты мы рассмотрим в главе 9.
Алгоритмы формирования изображения
7.6. Отсечение в трехмерном пространстве В трехмерном пространстве при выполнении отсечения анализируется положение объекта по отношению к пространственной зоне видимости, а не по отношению к двухмерной рамке. Наиболее просто рассмотренные двухмерные алгоритмы распространяются на трехмерное пространство в том случае, когда зона видимости имеет форму параллелепипеда, заданного соотношениями (рис. 7.21)
Рис. 7.21. Отсечение в трехмерном пространстве Три алгоритма отсечения (Коэна-Сазерленда, Лианга-Барского и Сазерленда-Ходжмена), рассмотренные в предыдущих разделах, можно модифицировать применительно к трехмерному случаю. Несложно сформировать и трехмерные прямоугольные оболочки и использовать их на этапе предварительного анализа перед собственно отсечением. Модификация алгоритма Коэна-Сазерленда заключается в том, что вместо 4-разрядного характеристического кода используется 6-разрядный. Один из дополнительных разрядов устанавливается в 1, если точка находится перед передней отсекающей плоскостью, а другой, если она находится за задней отсекающей плоскостью (рис. 7.22). Методика анализа и принятия решения в трехмерном случае ничем не отличается от двухмерного.
В модифицированный алгоритм Лианга-Барского нужно добавить уравнение г(а) = (1-а)г, +сс2
и использовать, таким образом, параметрическое уравнение прямой в трехмерном пространстве. В процессе анализа нужно рассматривать шесть точек пересечения прямой с плоскостями, ограничивающими зону видимости, но использовать при этом ту же логику принятия решения. В конвейерную архитектуру модуля отсечения нужно добавить два дополнительных узла, анализирующих отсечение передней и задней плоскостями зоны видимости.