diff options
Diffstat (limited to 'shaders/frag.glsl')
| -rw-r--r-- | shaders/frag.glsl | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/shaders/frag.glsl b/shaders/frag.glsl index a92699c..a70915a 100644 --- a/shaders/frag.glsl +++ b/shaders/frag.glsl @@ -8,6 +8,7 @@ out vec4 FragColor; uniform vec3 objectColor;
uniform vec3 lightColor;
uniform vec3 lightPos;
+uniform vec3 viewPos;
void main()
{
@@ -20,6 +21,12 @@ void main() float ambientStrength = 0.1;
vec3 ambient = ambientStrength * lightColor;
- vec3 result = (ambient + diffuse) * objectColor;
+ float specularStrength = 0.5;
+ vec3 viewDir = normalize(viewPos - FragPos);
+ vec3 reflectDir = reflect(-lightDir, norm);
+ float spec = pow(max(dot(viewDir, reflectDir), 0.0), 32);
+ vec3 specular = specularStrength * spec * lightColor;
+
+ vec3 result = (ambient + diffuse + specular) * objectColor;
FragColor = vec4(result, 1.0f);
-}
\ No newline at end of file +}
|
