]> gitweb.ps.run Git - subsurface_scattering/blobdiff - shaders/frag_irradiance.glsl
render shadowmap and irradiance
[subsurface_scattering] / shaders / frag_irradiance.glsl
diff --git a/shaders/frag_irradiance.glsl b/shaders/frag_irradiance.glsl
new file mode 100644 (file)
index 0000000..9e14ebe
--- /dev/null
@@ -0,0 +1,34 @@
+#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