Машинная графика - Учебное пособие (П.В.Вельтмандер)

0.8.2  преобразования

Преобразование изображения заключается либо в его геометрическом, координатном преобразовании, либо в преобразовании видимости, заключающемся, в частности, в отсечении частей полной сцены, невидимых в заданном окне просмотра.

Координатные преобразования

Дисплеи большой мощности обеспечивают выполнение геометрических преобразований (сдвиг, вращение, масштабирование, перспектива) в реальном времени с помощью аппаратуры перемножения матриц. При этом используются однородные координаты, позволяющие любое преобразование представить как умножение координат вектора на матрицу 4×4. На преобразование требуется 16 умножений и 12 сложений. При перспективных преобразованиях дополнительно требуются 2 деления. Аппаратура преобразований, в основном, реализуется на СБИС. На обычных стандартных чипах достигнуты времена преобразования в 3 мкс (без делений).

Отсечение векторов

Если изображение выходит за пределы экрана, то на части дисплеев увеличивается время построения за счет того, что изображение строится в "уме". В некоторых дисплеях выход за пределы экрана приводит к искажению картины, так как координаты просто ограничиваются при достижении ими граничных значений, а не выполняется точный расчет координат пересечения (эффект "стягивания" изображения). Некоторые, в основном, простые дисплеи просто не допускают выхода за пределы экрана. Все это, особенно в связи с широким использованием технологии просмотра окнами, требует выполнения отсечения сцены по границам окна видимости.

Программное исполнение отсечения достаточно медленный процесс, поэтому, естественно, в мощные дисплеи встраивается соответствующее оборудование.

Первое сообщение об аппаратуре отсечения, реализующей алгоритм Коэна-Сазерленда для отсечения отрезка на прямоугольном окне в устройстве Clipping Diviger, появилось в 1968 г.

Имеются реализации в СБИС варианта алгоритма Сазерленда-Ходгмана для отсечения многоугольника на прямоугольном окне. В этом алгоритме многоугольник последовательно отсекается всеми четырьмя сторонами окна.

Различные алгоритмы отсечения отрезков и многоугольников, в том числе и уже упомянутые алгоритмы Коэна-Сазерленда и Сазерленда-Ходгмана, подробно рассмотрены во второй части курса - "Основные алгоритмы".