|
|
@@ -1,9 +1,27 @@
|
|
|
uniform samplerCube lightCube;
|
|
|
varying vec4 vertexColor;
|
|
|
varying vec3 normal;
|
|
|
+uniform vec4 ambient_color;
|
|
|
|
|
|
void main()
|
|
|
{
|
|
|
vec4 texColor = textureCube(lightCube, normal);
|
|
|
- gl_FragColor = texColor*vertexColor;
|
|
|
+
|
|
|
+ vec4 color = vec4(1.0,1.0,1.0,1.0) + ambient_color;
|
|
|
+ color = clamp((color*vertexColor*texColor), 0.0, 1.0);
|
|
|
+
|
|
|
+ // fog
|
|
|
+ const float LOG2 = 1.442695;
|
|
|
+ float z = gl_FragCoord.z / gl_FragCoord.w;
|
|
|
+ float fogFactor = exp2( -gl_Fog.density *
|
|
|
+ gl_Fog.density *
|
|
|
+ z *
|
|
|
+ z *
|
|
|
+ LOG2 );
|
|
|
+
|
|
|
+ fogFactor = clamp(fogFactor, 0.0, 1.0);
|
|
|
+ color = mix(gl_Fog.color, color, fogFactor );
|
|
|
+
|
|
|
+ color.a = vertexColor.a * texColor.a;
|
|
|
+ gl_FragColor = color;
|
|
|
}
|