Luminosity Map
Per Textur wird das Eigenleuchten eines Objektes bestimmt.
Screenshot:
Vertex Shader:
uniform vec3 LightPos;
varying float LightIntensity;
varying vec2 UVCoord;
vec3 Normal;
void main(){
gl_Position = ftransform();
Normal = normalize(gl_NormalMatrix * gl_Normal);
LightIntensity = max(dot(normalize(LightPos - gl_Position.xyz), Normal), 0.0);
UVCoord = gl_MultiTexCoord0.st;
}
Fragment Shader:
varying float LightIntensity;
varying vec2 UVCoord;
uniform vec3 Color;
uniform float LuminosityLevel;
uniform sampler2D tex1;
void main(){
vec3 thisTex = vec3(texture2D(tex1,UVCoord));
vec3 thisColor = Color * LightIntensity;
thisColor += LuminosityLevel * thisTex;
gl_FragColor = vec4(thisColor, 1.0);
}