Stuff
[opengl.git] / texturefrag.glsl
index 83cce42cc72a6d42d97fbbda5d1e6761c0f80d57..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,21 +46,23 @@ 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);
 
-
        vec4 specTex;
        if (material.hasSpecularMap)
                specTex = texture(material.specularMap, texCoord);
        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;
 }