X-Git-Url: http://git.mutantstargoat.com?a=blobdiff_plain;f=gl_shaders%2Fdefault.f.glsl;h=ad4b77ac2731e7ab3e669ebf2673c4e4386d6f8e;hb=8d1aef17df1bf15491ce4fd35242adcd58a9c411;hp=388ba76a607608108f07ad2a31ebf4b6f5d74345;hpb=d03d86eb8489e7ab4c5460cea5ee265b0c1ee487;p=demo diff --git a/gl_shaders/default.f.glsl b/gl_shaders/default.f.glsl index 388ba76..ad4b77a 100644 --- a/gl_shaders/default.f.glsl +++ b/gl_shaders/default.f.glsl @@ -1,21 +1,29 @@ #version 450 uniform sampler2D tex; +uniform samplerCube dstex; uniform vec4 diffuse; uniform vec4 specular; uniform float shininess; varying vec3 pos; -varying vec3 normal; -varying vec3 ldir; -varying vec3 tex_coord; +// varying vec3 normal; +// varying vec3 ldir; +varying vec2 tex_coord; +varying vec3 world_normal; -layout(location = 0) out vec4 color; +// const float fog_density = 0.005; +uniform float fog_density; +const vec3 sky_color = vec3(0.35, 0.5, 0.65); + +out vec4 color; void main() { - vec3 p = normalize(pos); + vec4 itexel = textureCube(dstex, normalize(world_normal)); + +/* vec3 p = normalize(pos); // view space dir vec3 n = normalize(normal); vec3 l = normalize(ldir); @@ -23,7 +31,16 @@ void main() vec3 vdir = normalize(-p); float cdiff = max(dot(l, n), 0.0); - float cspec = pow(max(dot(r, vdir), 0.0), shininess); + 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); + + // vec3 object_color = (diffuse.xyz * cdiff * texel.xyz + specular.xyz * cspec) * itexel.xyz; + vec3 object_color = diffuse.xyz * texel.xyz * itexel.xyz; - color = diffuse * cdiff * texture2D(tex, tex_coord.xy) + specular * cspec; + color.xyz = mix(sky_color, object_color, fog); + color.w = 1.0; }