From 9c3795044af18d2122bd9d66cdf914a79ede0f94 Mon Sep 17 00:00:00 2001 From: Adrian G L Date: Thu, 2 Oct 2025 13:24:06 +0200 Subject: [PATCH] feat: add Phong specular lighting to fragment shader with shininess and strength controls --- shaders/simple.frag | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/shaders/simple.frag b/shaders/simple.frag index 8c34896..da4e918 100644 --- a/shaders/simple.frag +++ b/shaders/simple.frag @@ -14,5 +14,13 @@ void main() { vec3 diffuse = vColor.rgb * lambert; // combine ambient and diffuse vec3 result = ambient + diffuse; + // specular component (Phong) + float shininess = 32.0; + vec3 viewDir = vec3(0.0, 0.0, 1.0); + vec3 reflectDir = reflect(-lightDirection, normalize(vNormal)); + float spec = pow(max(dot(reflectDir, viewDir), 0.0), shininess); + float specStrength = 0.5; + vec3 specular = specStrength * spec * vec3(1.0); + result += specular; color = vec4(result, vColor.a); }