Встроенные uniform-переменные (листинг 4.1) предоставляют шейдеру текущее состояние OpenGL, Их значения могут получать и вершинные, и фрагментные шейдеры. Если приложение не меняет значение состояния OpenGL, эти переменные содержат значения по умолчанию, определенные OpenGL.

Листинг 4.1. Встроенные uniform-переменные

//

Л матрицы состояния //'

uniform mat4 glModelViewMatrix:

uniform mat4 gl_ProjectionMatrix:

uniform mat4 gljtodelViewProjectionMatrix:

uniform mat3 gl_NormalMatrix: // вторичный параметр

uniform mat4 gl_TextureMatrix[gl J4axTextureCoords]:

//

// иасштабирование нормали И

uniform float gljtormal Scale;

//

//. диапазон глубины в оконных координатах //

struct gl_DepthRangeParameters

{

float near; // n

float far; // f

float diff; // f - n

}:

uniform gl__DepthRangeParameters gl_DepthRange;

//

// Плоскости отсечения П

uniform vec4 gl_Clip.Plane[gl MaxClipPlanes]: П

И Размер точки

//

struct gl_PointPararaeters {

float size:

float sizeMin;

float sizeMax:

float fadeThresholdSize:

float distanceConstantAttenuation;

float distanceLinearAttenuation; .. л

продолжение тУ

Листинг 4.1 (продолжение)

float distanceQuadrattcAttenuation:

}:

uniform gl_PoirtParameters gl_Po1nt:

//

П Параметры материала //

struct gl_Material Parameters {

vec4 emission; U Ecm

vec4 ambient; 11 Acm

vec4 diffuse; // Dcm

vec4 specular: // Scm

float shininess; // Srm

}:

uniform gl_Material Parameters gl ^FrontMaterial; uniform g1_MaterialParanieters gl_BackMateria1;

//

// Параметры освещения //

struct gl J-ightSourceParameters {

vec4 ambient; // Acli

vec4 diffuse; // Deli

vec4 specular: // Scli

vec4 position; // Ppli

vec4 halfVector: // вторичный параметр: Hi

vec3 spotDirection: // Sd1i

float spotExponent; // Srii

float spotCutoff: // Crli

// (диапазон: [0.0. 90.0], 180.0) float spotCosCutoff: 1/ вторичный параметр: eostCrli)

// (диапазон: [1.0, 0.0]. -1,0) float constantAttenuation; // КО

float linearAttenuation; // K1

float quadraticAttenuation: // K2

}:

uniform gl_LightSourceParameters gl J-ightSource[gl_MaxLights]: struct gl_LightModelParameters {

vec4 ambient: // Acs

}:

uniform gl_LightModelRarameters glJJghtModel: П

// Состояние, порожденное от освещения и материала.

//

struct glJJghtModel Products {

vec4 sceneColor; // вторичный параметр. Ecm + Acm * Acs


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