В дальнейшем мы сосредоточимся на подходе, ориентированном на объекты, хотя для некоторых процедур разработки будут рассматриваться алгоритмы, приемлемые в обоих случаях.

7.1. Четыре основные задачи

7.2. Реализация геометрических преобразований Практически во всех существующих на сегодняшний день графических системах реализация геометрических преобразований базируется на математическом аппарате однородных координат. Использование в качестве операторов матриц размером 4x4 позволяет выполнять суперпозицию преобразований перемножением соответствующих матриц. До сих пор при обсуждении преобразований мы ориентировались на используемые в OpenGL матричные параметры состояния - матрицу вида и матрицу проективного преобразования. В этой главе будет использован несколько отличный подход, который, тем не менее, довольно просто привести к указанным матрицам состояния. Мы будем рассматривать преобразования как последовательные изменения системы координат, каждое из которых можно представить в виде матрицы преобразования однородных координат. Нас интересуют пять систем координат:

система координат объектов (мировая);

система координат наблюдателя (камеры);

система координат отсечения;

нормализованная система координат устройства отображения;

система координат окна приложения.

На рис. 7.3 показана последовательность преобразования отдельного геометрического объекта в процессе перехода от одной системы координат к другой. Сначала объект (куб) и наблюдатель специфицируются в мировой системе координат. Матрица вида {model-view matrix) задает переход от мировой системы координат к системе координат наблюдателя. Следующий переход на рис. 7.3 - проективное преобразование. Если в системе используется математический аппарат, описанный в главе 5, то после этого преобразования сохраняется трехмерность описания, но вследствие нормализации проецирования это описание будет представлять предискаженный объект, готовый к выполнению ортогонального проецирования. В ходе нормализации зона видимости, имеющая форму пирамиды для перспективного проецирования или параллелепипеда - для параллельного, преобразуется в куб, центр которого находится в начале координат, а ребра имеют фиксированную длину, составляющую 2 единицы1. После выполнения этого преобразования вершины объекта будут представлены в системе координат отсечения (clip coordinates).


⇐ Предыдущая| |Следующая ⇒