diff options
| author | Patrick Schönberger | 2021-02-10 11:52:27 +0100 |
|---|---|---|
| committer | Patrick Schönberger | 2021-02-10 11:52:27 +0100 |
| commit | e03792c2d5620ca07ac50717062df846927027c0 (patch) | |
| tree | 0095ae1fcaeb680c0974398e7b15fe57f96daf66 /shaders/frag_irradiance.glsl | |
| parent | 451e872ddbe6db8bd8d6aa54ca0bf744dc5405e5 (diff) | |
| download | subsurface_scattering-e03792c2d5620ca07ac50717062df846927027c0.tar.gz subsurface_scattering-e03792c2d5620ca07ac50717062df846927027c0.zip | |
render shadowmap and irradiance
Diffstat (limited to 'shaders/frag_irradiance.glsl')
| -rw-r--r-- | shaders/frag_irradiance.glsl | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/shaders/frag_irradiance.glsl b/shaders/frag_irradiance.glsl new file mode 100644 index 0000000..9e14ebe --- /dev/null +++ b/shaders/frag_irradiance.glsl @@ -0,0 +1,34 @@ +#version 330 core
+
+in vec3 FragPos;
+in vec3 Normal;
+
+out vec4 FragColor;
+
+uniform sampler2D shadowmapTexture;
+
+uniform vec3 objectColor;
+uniform vec3 lightColor;
+uniform vec3 lightPos;
+uniform vec3 viewPos;
+
+void main()
+{
+ vec3 norm = normalize(Normal);
+ vec3 lightDir = normalize(lightPos - FragPos);
+
+ float diff = max(dot(norm, lightDir), 0.0);
+ vec3 diffuse = diff * lightColor;
+
+ float ambientStrength = 0.1;
+ vec3 ambient = ambientStrength * lightColor;
+
+ 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);
+}
|
