X-Git-Url: https://gitweb.ps.run/subsurface_scattering/blobdiff_plain/451e872ddbe6db8bd8d6aa54ca0bf744dc5405e5..e03792c2d5620ca07ac50717062df846927027c0:/shaders/frag_irradiance.glsl 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); +}