Примечание: на видеокартах ATi обязательно наличие точки при работе с float-переменными, например, float a=2; или vec3 myVec=vec3(0.2,0,3.1); не скомпилится, правильно следует писать float a=2.0; или vec3 myVec=vec3(0.2,0.0,3.1);
Допускается создание констант, например
const int abcd=5; const vec3 vec1=vec3(0.5,1.2,-7.4);
для объявления вектора с одинаковыми компонентами можно указать только одно число, также можно в качестве нескольких компонент указывать другой вектор. Например:
Для длинны вектора существует функция length float l=length(vec_a);
Модификатор uniform позволяет передавать переменные из программы в шейдер, эти переменные общие на протяжении работы всего шейдера пока они не будут изменены программой.
Модификатор varying позволяет использовать переменные как в вершинном, так и во фрагментном шейдерах, Используется для передачи значений из вершинного шейдера в текстурный, с интерполяцией между вершинами.
Модификатор attribute используется для работы с переменными, привязанными к вершинам.