X-Git-Url: https://git.lukelau.me/?a=blobdiff_plain;ds=sidebyside;f=solidfrag.glsl;h=fa00e7aa2e7ed8f0021774fa525665937ab65f5b;hb=b91a0d30ae6484b6c4d981aeafa8d4996c98effe;hp=f9b91ba4d0f2fb16b7515f808730d0df7f10b4a6;hpb=5a4d005b668b98d44ef20391ecddaf6bfc2ee70f;p=opengl.git diff --git a/solidfrag.glsl b/solidfrag.glsl index f9b91ba..fa00e7a 100644 --- a/solidfrag.glsl +++ b/solidfrag.glsl @@ -1,6 +1,24 @@ #version 330 +in vec3 normal; +in vec3 fragPos; +uniform vec3 lightPos; +uniform vec3 viewPos; +uniform vec4 lightColor; uniform vec4 color; 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); + + vec4 lighting = (ambient + diffuse + specular) * lightColor; + + FragColor = lighting * color; } +