Основы компьютерной графики для программистов. Казанцев А.В. - 70 стр.

UptoLike

Составители: 

Основы компьютерной графики для программистов 70
____________________________________________________________________________________________________________________
http://www.ksu.ru/persons/9134.ru.html
Функция glViewport устанавливает так называемый порт вывода. Порт вывода это
прямоугольная область в пределах окна Windows, в которое осуществляется
отображение графики. Иногда порт вывода так и называют в английской транскрипции
- “вьюпорт”:
void glViewport(
GLint x,
GLint y,
GLsizei width,
GLsizei height
);
Параметры x и y определяют левый нижний угол порта вывода в пикселах. Если порт
вывода явно не указан, то (x,y)=(0,0). Параметры
width и height задают ширину и
высоту порта вывода, соответственно. При первом подключении контекста
воспроизведения размеры порта вывода совпадают с размерами окна Windows к
которому подключен контекст воспроизведения.
Команда glMatrixMode(GL_PROJECTION) устанавливает матрицу проекций текущей. В
OpenGL используется общеизвестная модель матричных преобразований трехмерной
графики, которая включает в себя матрицу видового преобразования, и матрицу
проекции. Матрица видового преобразования задает расположение, перемещения, и
масштабирование объектов в пространстве, а также расположение объектов по
отношению к наблюдателю. Матрица проекции определяет параметры проецирования
на экран. В OpenGL можно
установить любую матрицу перспективного преобразования
непосредственно. Но для параллельной и центральной перспективной проекций можно
воспользоваться специализированными функциями.
После установки текущей матрицы она содержит в себе значения, которые в общем
случае могут быть не известны. Если применять преобразования, связанные с этой
матрицей, то текущие значения будут использоваться, что может привести к
непредсказуемым результатам на экране. Для того чтобы этого не произошло, текущую
матрицу следует инициализировать как единичную с помощью функции
glLoadIdentity,
либо запомнить ее в стеке для последующего восстановления.
Из двух типов проекций рассмотрим в начале центральную перспективную проекцию.
Она устанавливается командой
glFrustum:
void glFrustum(
GLdouble left,
GLdouble right,
Gldouble bottom,
GLdouble top,
GLdouble near,
GLdouble far
);
Параметры этой функции определяют координаты расположения граней усеченной
пирамиды видимого объема: left и right – для левой и правой граней относительно
ближней
near грани. Нижняя и верхняя грани соответствуют параметрам bottom и top, а
дальняя отсекающая плоскость определяется параметром
far. Обратите внимание, что в
приведенном примере параметры левой и правой стороны усеченной пирамиды
кажутся выбранными слишком малыми по сравнению с параметрами верхней и нижней
Основы компьютерной графики для программистов                                                                  70
____________________________________________________________________________________________________________________



Функция glViewport устанавливает так называемый порт вывода. Порт вывода это
прямоугольная область в пределах окна Windows, в которое осуществляется
отображение графики. Иногда порт вывода так и называют в английской транскрипции
- “вьюпорт”:
    void glViewport(
    GLint x,
    GLint y,
    GLsizei width,
    GLsizei height
    );
Параметры x и y определяют левый нижний угол порта вывода в пикселах. Если порт
вывода явно не указан, то (x,y)=(0,0). Параметры width и height задают ширину и
высоту порта вывода, соответственно. При первом подключении контекста
воспроизведения размеры порта вывода совпадают с размерами окна Windows к
которому подключен контекст воспроизведения.

Команда glMatrixMode(GL_PROJECTION) устанавливает матрицу проекций текущей. В
OpenGL используется общеизвестная модель матричных преобразований трехмерной
графики, которая включает в себя матрицу видового преобразования, и матрицу
проекции. Матрица видового преобразования задает расположение, перемещения, и
масштабирование объектов в пространстве, а также расположение объектов по
отношению к наблюдателю. Матрица проекции определяет параметры проецирования
на экран. В OpenGL можно установить любую матрицу перспективного преобразования
непосредственно. Но для параллельной и центральной перспективной проекций можно
воспользоваться специализированными функциями.
После установки текущей матрицы она содержит в себе значения, которые в общем
случае могут быть не известны. Если применять преобразования, связанные с этой
матрицей, то текущие значения будут использоваться, что может привести к
непредсказуемым результатам на экране. Для того чтобы этого не произошло, текущую
матрицу следует инициализировать как единичную с помощью функции glLoadIdentity,
либо запомнить ее в стеке для последующего восстановления.
Из двух типов проекций рассмотрим в начале центральную перспективную проекцию.
Она устанавливается командой glFrustum:


     void glFrustum(
     GLdouble left,
     GLdouble right,
     Gldouble bottom,
     GLdouble top,
     GLdouble near,
     GLdouble far
     );


Параметры этой функции определяют координаты расположения граней усеченной
пирамиды видимого объема: left и right – для левой и правой граней относительно
ближней near грани. Нижняя и верхняя грани соответствуют параметрам bottom и top, а
дальняя отсекающая плоскость определяется параметром far. Обратите внимание, что в
приведенном примере параметры левой и правой стороны усеченной пирамиды
кажутся выбранными слишком малыми по сравнению с параметрами верхней и нижней

http://www.ksu.ru/persons/9134.ru.html