#version 120 //#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); }