X-Git-Url: https://git.lukelau.me/?p=opengl.git;a=blobdiff_plain;f=texturefrag.glsl;h=94bda7fa859231016a526ff3fd5f7af405ee7b43;hp=35ef1ec6fcfa97c89415607490cc328b553d68ae;hb=85f8f7278f24fe73fef1a19174376b155319072f;hpb=1043b5b05e00f830da26624eee8b25fb4dc4e4fc diff --git a/texturefrag.glsl b/texturefrag.glsl index 35ef1ec..94bda7f 100644 --- a/texturefrag.glsl +++ b/texturefrag.glsl @@ -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; }