Skip to content

Commit

Permalink
Made silhouettes display correctly in the fog.
Browse files Browse the repository at this point in the history
git-svn-id: http://svn.wildfiregames.com/public/ps/trunk@12862 3db68df2-c116-0410-a063-a993310a9797
  • Loading branch information
wraitii committed Nov 18, 2012
1 parent cf556dc commit 32b695c
Showing 1 changed file with 19 additions and 1 deletion.
20 changes: 19 additions & 1 deletion binaries/data/mods/public/shaders/glsl/solid_player.fs
@@ -1,8 +1,26 @@
#version 110

uniform vec4 playerColor;
uniform vec3 fogColor;
uniform vec2 fogParams;

vec3 get_fog(vec3 color)
{
float density = fogParams.x;
float maxFog = fogParams.y;

const float LOG2 = 1.442695;
float z = gl_FragCoord.z / gl_FragCoord.w;
float fogFactor = exp2(-density * density * z * z * LOG2);

fogFactor = fogFactor * (1.0 - maxFog) + maxFog;

fogFactor = clamp(fogFactor, 0.0, 1.0);

return mix(fogColor, color, fogFactor);
}

void main()
{
gl_FragColor = playerColor;
gl_FragColor = vec4(get_fog(playerColor.rgb),playerColor.a);
}

0 comments on commit 32b695c

Please sign in to comment.