Пикселы в окне на экране, конечно же, не имеют дробных координат из промежутка (-1, 1 ). В окне обычно используются оконные координаты, где координата х меняется от 0 до значения ширины окна минус 1, а координата у - от 0 до значения высоты окна минус 1. Поэтому нужно выполнить еще одно преобразование, Оконное преобразование определяет правила отображения из нормализованных приборных координат в окопные координаты, и эти правила можно назначить функцией gl Viewport (назначаются правила отображения длядг- и iy-координат). Растеризация графических примитивов происходит уже в оконных координатах.
1.10. Текстурирование Отображение текстуры - один из самых сложных видов операций в OpenGL API. Для него определено больше расширений, чем для других видов OpenGL-операций, так как этот вид был чуть ли не единственным, для которого применяли графические ускорители в то время, когда был определен OpenGL (в начале 1990 гг.).
1.10. Текстурирование Брофаммируемость, привнесенная языком шейдеров OpenGL, продвигает эти операции далеко вперед, по уже существующие в OpenGL-функции все еще используются для создания текстур, их изменения и определения их поведения. Данный раздел описывает ту функциональность работы с текстурами, которая использовалась еще в OpenGL 1.5. В этой модели произошли некоторые значительные изменения, в частности в принципах текстурирования, и появились расширения OpenGL, которые поддерживают язык шейдеров OpenGL.
В OpenGL существует четыре основных типа текстурных карт: одномерная, двухмерная, трехмерная и кубическая (OpenGL 1.0 поддерживал только одномерные и двухмерные текстуры). ID-текстура - это массив, в котором хранятся значения ширины, 20-тскстура - массив, содержащий значения высоты и ширины, а ЗО-текстура содержит значения ширины, высоты и глубины. Кубическая текстура содержит шесть двухмерных текстур, для каждого главного направления оси (то есть ±х, ±у, ±2).
В OpenGL используется понятие модуля текстур. Этот модуль соответствует части графического ускорителя, которая выполняет различные операции с текстурами. В OpenGL 1.3 появилась возможность работы с несколькими текстурными модулями. Каждый модуль хранит несколько состояний для текстурных операций: