Stuff
[opengl.git] / texturefrag.glsl
index 35ef1ec6fcfa97c89415607490cc328b553d68ae..94bda7fa859231016a526ff3fd5f7af405ee7b43 100644 (file)
@@ -1,10 +1,10 @@
 #version 330
 
 struct Material {
-       vec3 ambient;
-       vec3 diffuse;
+       vec4 ambient;
+       vec4 diffuse;
        sampler2D diffuseMap;
-       vec3 specular;
+       vec4 specular;
        sampler2D specularMap;
        float shininess;
        
@@ -46,7 +46,10 @@ void main() {
                diffTex = texture(material.diffuseMap, texCoord);
        else
                diffTex = vec4(1);
-       vec4 diffuse = vec4(max(0, dot(lightDir, normal)) * material.diffuse, 1) * diffTex;
+       
+       vec4 ambient = material.ambient * diffTex;
+
+       vec4 diffuse = max(0, dot(lightDir, normal)) * material.diffuse * diffTex;
 
        vec3 viewDir = normalize(viewPos - fragPos);
        vec3 reflectDir = reflect(-lightDir, normal);
@@ -57,9 +60,9 @@ void main() {
        else
                specTex = vec4(1);
 
-       vec4 specular = vec4(pow(max(0, dot(viewDir, reflectDir)), material.shininess) * material.specular, 1) * specTex;
+       vec4 specular = pow(max(0, dot(viewDir, reflectDir)), material.shininess) * material.specular * specTex;
 
-       vec4 lighting = (vec4(material.ambient, 1) + diffuse + specular) * lightColor;
+       vec4 lighting = (ambient + diffuse + specular) * lightColor;
 
        FragColor = lighting;
 }