X-Git-Url: https://git.lukelau.me/?p=opengl.git;a=blobdiff_plain;f=fragment.glsl;fp=fragment.glsl;h=e41a7f929083f43ba0ee3653e1cf37946eb9daf2;hp=edc4f63358b73b6d46799ab01e18f31ffbca038b;hb=526f5c3dc0302e541c95ed2198ce8fdb5cdd0b99;hpb=f26de7de42a3d0a52365de79f528fcea808e2bca diff --git a/fragment.glsl b/fragment.glsl index edc4f63..e41a7f9 100644 --- a/fragment.glsl +++ b/fragment.glsl @@ -1,7 +1,20 @@ #version 330 in vec4 color; +in vec3 normal; +in vec3 fragPos; +uniform vec3 lightPos; +uniform vec3 viewPos; out vec4 FragColor; void main() { - FragColor = color; + 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); + + FragColor = (ambient + diffuse + specular) * color; }