//

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

II
struct gl J_ightSourceParameters {
vec4 ambient; // Acli
vec4 diffuse; // Deli
vec4 specular; // Scli
vec4 position: // Ppli

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

vec3 spotDirection; // Sdli
float spotExponent; // Srii
float spotCutoff: // Crli

// (диапазон: [O.G. 90.0]. 180.0)

float spotCosCutoff; /./ вторичный параметр: cos(Crli)

// (диапазон: [1.0. 0,0]. -1,0)

float constantAttenuation; // КО

float linearAttenuation; // Kl
float quadraticAttenuation: // K2
}:
uniform gl_LightSourceParameters gl J-ightSource[gl_Maxtights]:
struct gl_LightModelParameters {
vec4 ambient: // Acs
}:
uniform glJ-ightModelParameters gl J.ightMode.1: //

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

struct gltightModel Products {

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

4.3. Вароенные Liniform-переменные

uniform gl_LightModelProducts gl_FrontLightModelProduct: uniform gl_LigtitModelProducts gf_BackLightModelProduct:
Struct gl_LightProdiicts {
vec4 ambient: // Acm * Acli
v.ec4 diffuse: // Dcm * Deli
vec4 specular: .// Scm * Sell
}:
uniform gl_LightProducts gl_FrontLightProduct[gl_MaxLights]:
uniform gl_LightProducts gl_BackLightProduct[gl_MaxLights];
I-1

It. Текстуры //

uniform vec4 gl_TextureEnvColor[gl_MaxTextureImageUnits]: uniform vec4 gl_EyePlaneS[gl_MsxTextureCoords]: uniform vec4 gl_EyePlaneT[gl_MaxTextureCoords]: uniform vec4 gl_EyePlaneR[g1_MaxTextureCoords]: i uniform vec4 gl_EyePlaneQ[gl_MaxTextureCoords]: uniform vec4 gl_ObjectPlaneS[gl_MaxTextureCoords]; uniform vec4 gl J}bjectPlaneT[gl_MaxTextu.reCoords.]; uniform vec4 gl_ObjectPlaneR[gl_MaxTextureCoords]; uniform vec4 gl_ObjectPlaneQ[gl_MaxTextureCoords]:
//

.// Дымка

//
struct gl^FogParameters {
vec4 Color;
float density: float start; float end;
float scale; // 1 / (gl_Fog.end - gl_Fog.start)
uniform gl_FogParameters gl Fog :

Приведенные здесь встроенные uniform-переменные определены таким образом, чтобы получить наибольшее преимущество от возможностей языка. Параметры сгруппированы в структуры, например: параметры диапазона глубины, параметры материала, параметры освещения и дымки. Для определения источников света и плоскостей отсечения используются массивы. Определение uniform-переменных в таком виде улучшает удобочитаемость кода и позволяет шейдерам, например, обрабатывать такие данные с помощью циклов.


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