]> gitweb.ps.run Git - subsurface_scattering/blob - shaders/frag_irradiance.glsl
9e14ebe2e2da8dd07e31d4cb92b71abe40cfdd6f
[subsurface_scattering] / shaders / frag_irradiance.glsl
1 #version 330 core\r
2 \r
3 in vec3 FragPos;\r
4 in vec3 Normal;\r
5 \r
6 out vec4 FragColor;\r
7 \r
8 uniform sampler2D shadowmapTexture;\r
9 \r
10 uniform vec3 objectColor;\r
11 uniform vec3 lightColor;\r
12 uniform vec3 lightPos;\r
13 uniform vec3 viewPos;\r
14 \r
15 void main()\r
16 {\r
17   vec3 norm = normalize(Normal);\r
18   vec3 lightDir = normalize(lightPos - FragPos);\r
19 \r
20   float diff = max(dot(norm, lightDir), 0.0);\r
21   vec3 diffuse = diff * lightColor;\r
22 \r
23   float ambientStrength = 0.1;\r
24   vec3 ambient = ambientStrength * lightColor;\r
25 \r
26   float specularStrength = 0.5;\r
27   vec3 viewDir = normalize(viewPos - FragPos);\r
28   vec3 reflectDir = reflect(-lightDir, norm);\r
29   float spec = pow(max(dot(viewDir, reflectDir), 0.0), 32);\r
30   vec3 specular = specularStrength * spec * lightColor;\r
31 \r
32   vec3 result = (ambient + diffuse + specular) * objectColor;\r
33   FragColor = vec4(result, 1.0f);\r
34 }\r