procedural-3d-engine/data/shaders/glsl/ssao/composition.frag
Ben Clayton ca884587a4 Move shaders into glsl and hlsl directories
Move `data/shaders` to `data/shaders/glsl`
Move `data/hlsl` to `data/shaders/hlsl`

Fix up shader paths in the cpp files to point to the new glsl location.

`data/shaders/hlsl/compile.py` still overwrites the glsl .spv files (for
now).

Issue: #723
2020-06-01 12:22:28 +01:00

52 lines
No EOL
1.2 KiB
GLSL

#version 450
layout (binding = 0) uniform sampler2D samplerposition;
layout (binding = 1) uniform sampler2D samplerNormal;
layout (binding = 2) uniform sampler2D samplerAlbedo;
layout (binding = 3) uniform sampler2D samplerSSAO;
layout (binding = 4) uniform sampler2D samplerSSAOBlur;
layout (binding = 5) uniform UBO
{
mat4 _dummy;
int ssao;
int ssaoOnly;
int ssaoBlur;
} uboParams;
layout (location = 0) in vec2 inUV;
layout (location = 0) out vec4 outFragColor;
void main()
{
vec3 fragPos = texture(samplerposition, inUV).rgb;
vec3 normal = normalize(texture(samplerNormal, inUV).rgb * 2.0 - 1.0);
vec4 albedo = texture(samplerAlbedo, inUV);
float ssao = (uboParams.ssaoBlur == 1) ? texture(samplerSSAOBlur, inUV).r : texture(samplerSSAO, inUV).r;
vec3 lightPos = vec3(0.0);
vec3 L = normalize(lightPos - fragPos);
float NdotL = max(0.5, dot(normal, L));
if (uboParams.ssaoOnly == 1)
{
outFragColor.rgb = ssao.rrr;
}
else
{
vec3 baseColor = albedo.rgb * NdotL;
if (uboParams.ssao == 1)
{
outFragColor.rgb = ssao.rrr;
if (uboParams.ssaoOnly != 1)
outFragColor.rgb *= baseColor;
}
else
{
outFragColor.rgb = baseColor;
}
}
}