□ матрица модели-вида не накладывается на координаты вершины;

□ матрица проекции не накладывается на координаты вершины; О матрица текстуры не накладывается на координаты текстуры;

Q нормали не преобразуются в координаты пространства обзора;

□ нормали не масштабируются и не нормализуются;

0 не выполняется нормализация по GL_AUT0_N0RMAL;

:.0 текстурные координаты не генерируются автоматически;

□ не вычисляется освещение;

□ не вычисляется цвет материала;

□ не вычисляется цвет освещения;

□ не вычисляется поглощение света в зависимости от расстояния.

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

□ замыкание цвета на крае или наложение маски (для встроенных varying-переменных для хранения цвета, но не для определенных разработчиком varying-переменных); О вычисление перспективы в области отсечения;

□ переход в оконную систему координат;

□ определение диапазона глубины;

□ отсечение, включая определенное пользователем отсечение;

□ определение передней поверхности;

□ плоскостная затушевка;

□ вычисление цвета, координат текстуры, дымки, размера точки и определенного пользователем отсечения;

□ окончательная обработка цвета.

Основные операции, выполняемые вершинным процессором, Обсуждались в разделе 2.3.1.

Вершинный шейдер получает данные через attribute- и uniform-переменные, встроенные или определенные разработчиком, или текстурные карты - новую функциональность, которая появилась с языком шейдеров OpenGL (см. рис. 2.2). Результат можно получить из вершинного процессора через встроенные или определенные разработчиком varying-переменные и специальные выходные переменные вершинного шейдера. Встроенные константы (см. раздел 4.4) тоже доступны из вершинного шейдера.

В OpenGL можно установить режим индексированного цвета вместо RGBA-режима. Но этот режим не поддерживается вершинными шейдерами. Это означает, что, если буфер кадров использует индексирование цвета, поведение вершинного шейдера при попытке использования не определено.

4.1.1. Атрибуты вершины

Приложения, рисующие изображения с помощью OpenGL, должны задавать атрибуты для каждой вершины примитива - нормаль, цвет, координаты текстуры и др. Атрибуты задают для каждой вершины отдельно с помощью функций gl Normal, gl Col or и gl TexCoord. Если использовать эти функции, задаваемые атрибуты на время станут частью состояния OpenGL.

Изображения можно рисовать также с помощью массивов вершин. Использующее этот метод приложение должно поместить атрибуты вершин в отдельные массивы координат, нормалей, цвета, текстурных координат и т. п. Вызвав функцию gl DrawArrays, можно затем установить эти атрибуты вершин для OpenGL за один вызов функции. Буферные объекты вершин (вместилище атрибутов вершин в OpenGL) появились в OpenGL версии 1.5 для повышения производительности.


⇐ вернуться назад | | далее ⇒