X-Git-Url: http://git.lukelau.me/?p=opengl.git;a=blobdiff_plain;f=normalfrag.glsl;fp=normalfrag.glsl;h=1683592f4a546c830a161286ed785d961826f60d;hp=0000000000000000000000000000000000000000;hb=5a4d005b668b98d44ef20391ecddaf6bfc2ee70f;hpb=c5d984e4904ae7b286bf095a1c640cc25cebe9be diff --git a/normalfrag.glsl b/normalfrag.glsl new file mode 100644 index 0000000..1683592 --- /dev/null +++ b/normalfrag.glsl @@ -0,0 +1,24 @@ +#version 330 +in vec3 normal; +in vec3 normalEye; +in vec3 fragPos; +uniform vec3 lightPos; +uniform vec3 viewPos; +uniform vec4 lightColor; +out vec4 FragColor; + +void main() { + float ambient = 0.1; + float specularStrength = 0.5; + vec3 lightDir = normalize(fragPos - lightPos); + float diffuse = max(0, dot(-normal, lightDir)); + + vec3 viewDir = normalize(fragPos - viewPos); + vec3 reflectDir = reflect(-lightDir, normal); + float specular = pow(max(0, dot(viewDir, reflectDir)), 128); + + vec4 lighting = (ambient + diffuse + specular) * lightColor; + + FragColor = lighting * vec4(normalEye, 1); +} +