Вершинный шейдер может использовать следующие встроенные varying-переменные, обязательные для заполнения, для последующей обработки фрагментов либо стандартными операциями OpenGL, либо фрагментным шейдером:

varying vec4 g1_FrontColor;
varying vec4 g1_BackColor:
varying vec4 gl_FrontSecondaryColor;
varying vec4 gl_BackSecondaryCelor:
varying vec4 gl_TexCoord[gl_MaxTextureCoords];
varying float gl_FogFragCoord;

Значения, записанные в переменные gl_FrontColor, gl_BackColor, gl_FrontSecon-daryCol or и gl_BackSecondaryCol or, после выхода из вершинного шейдера будут при4.2. Фрагментный процессор

;:ввдены к диапазону [0, 1]. По этим четырем значениям можно определить, какой грани принадлежит примитив - передней или задней. Потом вычисляются gl__C.olor и gljSecondaryCol or для фрагментного шейдера.

В массив g1_TexCoord из вершинного шейдера передается несколько наборов координат текстуры. Так текстуры становятся доступными для OpenGL, если нет фрагментного шейдера, но если он есть, тоже можно использовать gl_TexCoord.

В переменную gl^FogFragCoord записывается информация о координатах для дымки. Записываемое значение зависит от того, какой режим дымки ранее установлен функцией gl Fog. Если в нее передавалась константа GL_FRAGMENT_DEPTH, то Bgl_FogFragCoord нужно записывать расстояние от точки обзора до вершины в пространстве координат обзора, где координаты точки обзора (0, 0, 0, 1). Если же установлен режим дымки GL_F0G_C00RD I NATE, в gl_FogFragCoord нужно записывать значение координаты дымки, которое затем будет интерполироваться .в целом по примитиву (то есть используется встроенная attribute-переменная glJogCoord).

4.1.5. Определенные разработчиком varying-переменные В вершинных шейдерах можно определять varying-переменные для передачи любых данных фрагментному шейдеру. Эти значения не модифицируются, но используются при отсечении и интерполяции. Существует ограничение на количество значений с плавающей запятой, которые могут быть интерполированы, и это ограничение определяется реализацией. Узнать максимальное количество таких значений можно с помощью функции gl Get, передав ей константу .GL_MAX_VARYING_FLOATS_ARB.


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