Тип attribute используется для передачи часто изменяемых значений от приложения к вершинному шейдеру.

Тип va ryi ng используется для передачи промежуточных данных от вершинного шейдера фрагментному шейдеру.

Тип uni form используется для передачи нечасто изменяемых данных от приложения к вершинному и фрагментному шейдерам.

Добавлен дискретизатор для доступа к текстурам.

Существует доступ к состоянию OpenGL и стандартной функциональности через встроенные переменные.

Основы

Включено множество встроенных функций для выполнения графических операций.

Из языка С++ заимствованы обязательность объявления функций и перегрузка функций по количеству и типу аргументов.

Переменные можно объявлять при необходимости, а не в начале блока. Чтобы установить и использовать шейдеры OpenGL, нужно проделать следующее:

1. Создать один или несколько пустых шейдерных объектов функцией gl Create-ShaderObjectARB.

2. Задать исходный код шейдеров функцией glShaderSourceARB.

3. Скомпилировать каждый шейдер функцией gl Compi 1 eShaderARB.

4. Создать программный объект функцией gl CreateProgramObj ectARB.

5. Присоединить все созданные шейдерные объекты к программному объекту функцией gl AttachObjectARB.

Аренда экскаватора погрузчика в Екатеринбурге.

6. Скомпоновать программный объект функцией gl LinkProgramARB.

7. Установить выполняемую программу как часть текущего состояния OpenGL функцией gl UseProgramObjectARB.

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

2.8. Ссылки Чтобы лучше разобраться в предмете, просто продолжайте изучать книгу. А за техническими подробностями можно обратиться к спецификации. На веб-сайте компании 3Dlabs можно найти дополнительную информацию - презентации, демонстрационные программы, примеры шейдеров и их исходный код,

1. 3Dlabs. Веб-сайт для разработчиков (http://www.3dlabs.com/support/developer).

2. Kessenich J„ Baldwin D., Rost R. The OpenGL Shading Language, Version 1.051/ 3Dlabs. 2003 (http://www.3dlabs.com/support/deveLoper/ogL2).

⇐ Предыдущая| |Следующая ⇒