+#version 330 core\r
+\r
+in vec3 FragPos;\r
+in vec3 Normal;\r
+\r
+out vec4 FragColor;\r
+\r
+uniform sampler2D shadowmapTexture;\r
+\r
+uniform vec3 objectColor;\r
+uniform vec3 lightColor;\r
+uniform vec3 lightPos;\r
+uniform vec3 viewPos;\r
+\r
+void main()\r
+{\r
+ vec3 norm = normalize(Normal);\r
+ vec3 lightDir = normalize(lightPos - FragPos);\r
+\r
+ float diff = max(dot(norm, lightDir), 0.0);\r
+ vec3 diffuse = diff * lightColor;\r
+\r
+ float ambientStrength = 0.1;\r
+ vec3 ambient = ambientStrength * lightColor;\r
+\r
+ float specularStrength = 0.5;\r
+ vec3 viewDir = normalize(viewPos - FragPos);\r
+ vec3 reflectDir = reflect(-lightDir, norm);\r
+ float spec = pow(max(dot(viewDir, reflectDir), 0.0), 32);\r
+ vec3 specular = specularStrength * spec * lightColor;\r
+\r
+ vec3 result = (ambient + diffuse + specular) * objectColor;\r
+ FragColor = vec4(result, 1.0f);\r
+}\r