□ создание вершинных шейдеров;

□ блокирование/разблокирование вершинных шейдеров;

□ определение того, какая стандартная функциональность OpenGL недоступна при активном вершинном шейдере;

□ передачу значений, предназначавшихся для стандартной обработки, в вершинный шейдер;

□ обработку настраиваемых атрибутов вершин;

□ взаимодействие вершинного шейдера со стандартной функциональностью - сборка примитивов, отсечение, растеризация.

В ARB_vertex_shader определены следующие функции:

□ glVertexAttribARB - установка настраиваемых атрибутов вершин, вершина за раз;

□ gl VertexAttri bPoi nterARB - формирование вершинных массивов, установка расположения и структуры настраиваемых атрибутов вершин;

□ gl Bi ndAttri bLocati onARB - установка индекса настраиваемого атрибута вершины для определенной разработчиком переменной-атрибута в вершинном шейдере;

□ gl ЕпаЫ eVertexAttri bArrayARB - включение режима вершинных массивов для передачи настраиваемых атрибутов вершин OpenGL;

□ gl Di sabl eVertexAttri bArrayARB - выключение режима вершинных массивов для передачи настраиваемых атрибутов вершин OpenGL;

□ gl GetVertexAttri bARB - возврат текущего состояния заданного настраиваемого атрибута вершины;

□ gl Get VertexAttri bLocati onARB - возврат индекса настраиваемого атрибута вершины, связанного с определенной разработчиком переменной атрибута;

□ gl Get VertexAtt ri bPoi nterARB - возврат значения указателя вершинного массива для определенного настраиваемого атрибута вершины;

□ gl Get Act i veAttri bARB - получение имени, размера и типа активного атрибута программного объекта.

Третье и последнее расширение, поддерживающее язык шейдеров OpenGL, - ARB_fragment_shader. Оно похоже на ARB_vertex_shader, за исключением того, что определяет возможности нового программируемого фрагментного, а не вершинного процессора и его место в процессе обработки изображения в OpenGL. Это расширение не предоставляет дополнительного API, так как построено на настраиваемых возможностях расширения ARB_shader_objects. Тем не менее оно предоставляет следующую функциональность:

□ создание фрагментных шейдеров;

□ блокирование/разблокирование фрагментных шейдеров;

□ определение того, какая стандартная функциональность OpenGL недоступна при активном фрагментном шейдере;

□ передача значений, полученных при растеризации, фрагментному шейдеру;

□ взаимодействие фрагментного шейдера со стандартной функциональностью - окончательной обработкой изображения.

Все новые функции более подробно описаны в главе 7. Полный список функций этих расширений представлен в приложении Б в конце книги.


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