#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 normal;
+// varying vec3 ldir;
varying vec2 tex_coord;
+varying vec3 world_normal;
-const float fog_density = 0.005;
-const vec4 sky_color = vec4(0.35, 0.5, 0.65, 1.0);
+// 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); // view space dir
+ vec4 itexel = textureCube(dstex, normalize(world_normal));
+
+/* vec3 p = normalize(pos); // view space dir
vec3 n = normalize(normal);
vec3 l = normalize(ldir);
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);
- vec4 object_color;
- object_color.xyz = diffuse.xyz * cdiff * texel.xyz + specular.xyz * cspec;
- object_color.w = 1.0;
+ // vec3 object_color = (diffuse.xyz * cdiff * texel.xyz + specular.xyz * cspec) * itexel.xyz;
+ vec3 object_color = diffuse.xyz * texel.xyz * itexel.xyz;
- color = mix(sky_color, object_color, fog);
+ color.xyz = mix(sky_color, object_color, fog);
+ color.w = 1.0;
}