С чего мы начнем? Использование преобразований с OpenGL

В нескольких начальных разделах данной главы были представлены основные концепции аффинных преобразований и показано, как они приводят к определенным геометрическим эффектам, таким как масштабирование, повороты и сдвиги, - как в двумерном, так и в трехмерном пространстве. Разумеется, конечная цель состоит в создании изображений объектов, преобразованных до необходимого размера, ориентации и положения, с тем чтобы они составили желаемую сцену. В целом ряде графических платформ, в том числе и в OpenGL, предусмотрен так называемый «графический конвейер» («graphies pipeline») или, иными словами, последовательность операций, применяемых ко всем точкам, которые «пропускаются» через такой конвейер. Рисунок создается путем обработки каждой точки.

На рис. 5.7 показан упрощенный вид графического конвейера OpenGL. Приложение посылает на конвейер последовательность точек Рх, Р2, Ру… посредством уже известных нам команд:

glBegin(GL_LINES);

glVertex3f(…): // send PI through the pipeline // посылаем на конвейер точку PI

glVertex3f(…): // send P2 through the pipeline // посылаем на конвейер точку Р2

glVertex3f(…); // send РЗ through the pipeline // посылаем на конвейер точку РЗ glEndO: Как показано на рис. 5.7, все эти точки вначале подвергаются преобразованию, которое называется «текущим преобразованием» («current transformation» - СТ) и изменяет их значения, генерируя дру-

Преобразования объектов

гую последовательность точек, например 0,^ (22, (?3.....Если исходные точки Р. описывают некоторый геометрический объект, то точки 0,( будут описывать преобразованный вариант того же самого объекта. Эти точки затем посылаются на следующие этапы преобразования и в конечном счете используются для рисования окончательного изображения на дисплее.

Конвейер» OpenGL

Рис. 5.7. «Конвейер» OpenGL

Таким образом, СТ является ключевым инструментом управления графическими объектами, и для программиста приложения жизненно необходимо знать, как настроить СТ именно таким образом, чтобы были произведены все желаемые преобразования. После изложения основной теории аффинных преобразований в разделе «Использование аффинных преобразований в программах» мы покажем, как это делается.


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