X-Git-Url: https://git.lukelau.me/?p=opengl.git;a=blobdiff_plain;f=solidfrag.glsl;h=fa00e7aa2e7ed8f0021774fa525665937ab65f5b;hp=b729865e5072b995ddedd22ceef73a0c829792ef;hb=ba5e08bf25de722d907748ce55b27a45b2b270bf;hpb=8248b58325ebd9ab11342030ebc58ab81cdb78b2 diff --git a/solidfrag.glsl b/solidfrag.glsl index b729865..fa00e7a 100644 --- a/solidfrag.glsl +++ b/solidfrag.glsl @@ -1,6 +1,24 @@ #version 330 -uniform vec3 color; +in vec3 normal; +in vec3 fragPos; +uniform vec3 lightPos; +uniform vec3 viewPos; +uniform vec4 lightColor; +uniform vec4 color; out vec4 FragColor; + void main() { - FragColor = vec4(color, 1); + 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 * color; } +