]> gitweb.ps.run Git - subsurface_scattering/blobdiff - shaders/frag.glsl
render to framebufer
[subsurface_scattering] / shaders / frag.glsl
index a92699c8dba003d7ba2fccbeb7f3a51fe9045fd0..a70915a49e8abd03e8b9b6493f978b5b3ad5b5e3 100644 (file)
@@ -8,6 +8,7 @@ out vec4 FragColor;
 uniform vec3 objectColor;\r
 uniform vec3 lightColor;\r
 uniform vec3 lightPos;\r
+uniform vec3 viewPos;\r
 \r
 void main()\r
 {\r
@@ -20,6 +21,12 @@ void main()
   float ambientStrength = 0.1;\r
   vec3 ambient = ambientStrength * lightColor;\r
 \r
-  vec3 result = (ambient + diffuse) * objectColor;\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
-}
\ No newline at end of file
+}\r