Координатные системы двухмерного геометрического конвейера и их преобразование
В двухмерном видовом конвейере используются декартовы системы координат, их три: · Мировые координаты (World coordinate - WC). Координатная система пользователя. Используется прикладным программистом для описания графического ввода и вывода, ее размеры зависят от реальных размеров моделируемых объектов. · Нормализованные координаты устройства (Normalize device coordinate - NDC). Независимая от устройств декартова система координат, приведенная к диапазону от 0 до 1. Используется для хранения данных, обеспечивает защиту от переполнения и потери точности. · Координаты устройства (Device coordinate – DC). Координатная система, определяемая конкретным устройством вывода графической информации. Рисунок 3.1 Координатные системы двумерного геометрического конвейера. Устройство вывода графической информации в большинстве случаев имеет ограниченное рабочее пространство прямоугольной формы, которое необходимо эффективно использовать. Определим в координатной системе устройства прямоугольную область и введем ограничение – на устройство будут выведены только примитивы, попавшие в заданную область. Этот прямоугольник носит название поля вывода (ViewPort). Поле вывода не обязательно должно занимать всю рабочую область устройства. Например, мы можем определить в рабочей зоне устройства несколько непересекающихся полей вывода с тем, чтобы создать в них различные изображения (в принципе, можно и пересекающиеся, но это уже спецэффекты). Введение данного ограничения делает нецелесообразным преобразование всех объектов сцены из одной координатной системы в другую. Зачем делать лишнюю работу, преобразовывая объекты, которые не попадут в поле вывода? Зададим в исходной координатной системе прямоугольную область, называемую окном (Window). Объекты или части объектов, принадлежащие этой области, необходимо подвергнуть преобразованию. Объекты и части объектов, не принадлежащие этой области, необходимо исключить из рассмотрения. Данная операция носит название отсечения (clipping). Таким образом, мы пришли к следующему: преобразование на плоскости между координатными системами задается двумя прямоугольниками: окном и полем вывода. Рисунок 3.2 Преобразования геометрического конвейера 2D.
В двухмерном геометрическом конвейере два преобразования: WC – NDC (из Window1 во ViewPort1) и NDC – DC (из Window2 во ViewPort2). Они показаны на рис 3.2. Оба преобразования выполняются по одинаковой схеме. Рассмотрим ее подробнее, на примере преобразования, выполняемого между двумя произвольными координатными системами.
|