X-Git-Url: http://git.lukelau.me/?p=opengl.git;a=blobdiff_plain;f=texturefrag.glsl;fp=texturefrag.glsl;h=ddd951ed11975ef3aec4ee3fbe46989004baed1c;hp=24a54d56ea686420c083bf906976daae8991deed;hb=bd433c5ca7fcf3ce60bdc8db6fc0c76b547fe10b;hpb=3f58e3a13899a1b28ee7be6c0bf835670957aa6a diff --git a/texturefrag.glsl b/texturefrag.glsl index 24a54d5..ddd951e 100644 --- a/texturefrag.glsl +++ b/texturefrag.glsl @@ -56,6 +56,13 @@ void main() { if (!material.hasNormalMap) normal = defNormal; + vec4 ambient = material.ambient * texture(material.diffuseMap, texCoord); + if (!material.hasTexture) + ambient = material.ambient; + + ambient = mix(ambient, reflection(), material.reflectivity); + ambient = mix(ambient, refraction(), 1 - material.opacity); + vec3 lightDir = normalize(lightPos - fragPos); vec4 diffTex = texture(material.diffuseMap, texCoord); @@ -63,11 +70,8 @@ void main() { diffTex = material.diffuse; diffTex = mix(diffTex, reflection(), material.reflectivity); - diffTex = mix(diffTex, refraction(), 1 - material.opacity); - vec4 ambient = material.ambient * diffTex; - vec4 diffuse = max(0, dot(lightDir, normal)) * diffTex; vec3 viewDir = normalize(viewPos - fragPos); @@ -80,6 +84,5 @@ void main() { vec4 specular = pow(max(0, dot(viewDir, reflectDir)), material.shininess) * specTex; FragColor = (ambient + diffuse + specular) * lightColor; - }