X-Git-Url: http://git.mutantstargoat.com?p=demo;a=blobdiff_plain;f=gl_shaders%2Fdefault.f.glsl;h=88f0d69fe4029be18689f2235a736b2a4da35cdc;hp=98cf032592d0457f40b977eebe4bfead9e4b0fda;hb=c99060df01719b24ebd793b149d3c2dc5748cad5;hpb=243eb502c5dc70e586a9e81815234069bf623480 diff --git a/gl_shaders/default.f.glsl b/gl_shaders/default.f.glsl index 98cf032..88f0d69 100644 --- a/gl_shaders/default.f.glsl +++ b/gl_shaders/default.f.glsl @@ -11,11 +11,15 @@ varying vec3 normal; varying vec3 ldir; varying vec2 tex_coord; +// const float fog_density = 0.005; +uniform float fog_density; +const vec4 sky_color = vec4(0.35, 0.5, 0.65, 1.0); + out vec4 color; void main() { - vec3 p = normalize(pos); + vec3 p = normalize(pos); // view space dir vec3 n = normalize(normal); vec3 l = normalize(ldir); @@ -25,8 +29,14 @@ void main() float cdiff = max(dot(l, n), 0.0); float cspec = pow(max(dot(r, vdir), 0.0), shininess); + float dist = -pos.z; + float fog = clamp(exp(-fog_density * dist), 0.0, 1.0); + vec4 texel = texture2D(tex, tex_coord); - //color.xyz = diffuse.xyz * cdiff * texel.xyz + specular.xyz * cspec; - color.xyz = diffuse.xyz * cdiff + specular.xyz * cspec; - color.w = 1.0; + + vec4 object_color; + object_color.xyz = diffuse.xyz * cdiff * texel.xyz + specular.xyz * cspec; + object_color.w = 1.0; + + color = mix(sky_color, object_color, fog); }