1
0
Fork 0
fgdata/Shaders/include_fog.frag
Emilian Huminiuc 4af61aba47 Shaders/include_fog.frag: better fix for the common fog function
Signed-off-by: Emilian Huminiuc <emilianh@gmail.com>
2012-03-15 21:09:27 +02:00

16 lines
No EOL
465 B
GLSL

//#define fog_FuncTION
//varying vec3 PointPos;
vec3 fog_Func(vec3 color, int type)
{
//if (type == 0){
const float LOG2 = 1.442695;
//float fogCoord =length(PointPos);
float fogCoord = gl_ProjectionMatrix[3].z/(gl_FragCoord.z * -2.0 + 1.0 - gl_ProjectionMatrix[2].z);
float fogFactor = exp2(-gl_Fog.density * gl_Fog.density * fogCoord * fogCoord * LOG2);
if(gl_Fog.density == 1.0)
fogFactor=1.0;
return mix(gl_Fog.color.rgb, color, fogFactor);
}