Рис. 7.25. Отсечение при косоугольном проецировании
Алгоритмы формирования изображения
лизировать отдельные этапы обработки геометрических объектов в совокупности, учитывая их взаимное влияние на общую производительность графической системы.
Рис. 7.26. Предыскажение зоны видимости при нормализации проецирования: а - вид сверху до выполнения предыскажения; б - вид сверху после преобразования скоса Еще более вескими становятся аргументы в пользу выполнения нормализации при перспективном проецировании. Выполняя описанную в главе 5 процедуру перспективной нормализации, мы получаем в результате возможность использовать в процессе отсечения прямоугольную зону видимости, что, естественно, значительно упрощает вычисления.
В OpenGL существует возможность задавать дополнительные, произвольно ориентированные плоскости отсечения. В графической системе, которая обладает такими возможностями, приходится использовать обобщенную процедуру отсечения, реализованную программно, что, естественно, не лучшим образом сказывается на производительности системы в целом. (Бесплатный сыр бывает только в мышеловке.)
7.7. Удаление невидимых поверхностей После того как вершины прошли через все этапы геометрических преобразований и процедуру отсечения, "на конвейере" остались только те геометрические объекты, которые потенциально могут попасть в формируемое изображение. Но прежде чем приступать к их растровому преобразованию, нужно решить еще одну задачу - удалить объекты, перекрываемые с точки зрения наблюдателя другими объектами. Ниже будут описаны методы решения этой задачи для сцен, состоящих из полигональных объектов. Такое ограничение вводится по той простой причине, что в большинстве существующих на сегодняшний день графических систем все объекты, в конце концов, аппроксимируются множеством плоских многоугольников. Отрезки прямых также обрабатываются подобными методами после их незначительной модификации (см. упр. 7.7).
Анализ существующих на сегодняшний день алгоритмов удаления невидимых поверхностей позволяет выявить существенную разницу между подходами, ориентированными на отображаемые объекты и формируемое изображение. Особую роль в реализации этой процедуры играет возможность использовать предысторию анализа, когда результаты, полученные на предыдущем шаге, учитываются в последующих.