Назад | Оглавление | Домой | Далее
В процессе построения изображения координаты вершин подвергаются определенным преобразованиям. Подобным преобразованиям подвергаются заданные векторы нормали.
Изначально камера находится в начале координат и направлена вдоль отрицательного направления оси Оz.
В OpenGL существуют две матрицы, последовательно применяющиеся в преобразовании координат. Одна из них – матрица моделирования (modelview matrix), а другая – матрица проецирования (projection matrix). Первая служит для задания положения объекта и его ориентации, вторая отвечает за выбранный способ проецирования. OpenGL поддерживает два типа проецирования – параллельное и перспективное.
Существует набор различных процедур, умножающих текущую матрицу (моделирования или проецирования) на матрицу выбранного геометрического преобразования.
Текущая матрица задается при помощи процедуры gIMatrixMode(GLenum mode). Параметр mode может принимать значения GL_MODELVIEW, GL_TEXTURE или GL_PROJECTION, позволяя выбирать в качестве текущей матрицы матрицу моделирования (видовую матрицу), матрицу проецирования или матрицу преобразования текстуры.
Процедура gILoadldenity() устанавливает единичную текущую матрицу.
Обычно задание соответствующей матрицы начинается с установки единичной и последовательного применения матриц геометрических преобразований.
Преобразование переноса задается процедурой glTranslate{f d}(TYPE x, TYPE у, TYPE z), обеспечивающей перенос объекта на величину (x, у, z).
Преобразование поворота задаётся процедурой glRotate{f d}(TYPE angle, TYPE x, TYPE y, TYPE z), обеспечивающей поворот на угол angle в направлении против часовой стрелки вокруг прямой с направляющим вектором (x, у, z).
Преобразование масштабирования задаётся процедурой glScale{f d}(TYPE x, TYPE у, TYPE z).
Если указано несколько преобразований, то текущая матрица в результате будет последовательно умножена на соответствующие матрицы.
Назад | Оглавление | Домой | Далее