aboutsummaryrefslogtreecommitdiff
path: root/apps/openmb/resources/shaders/ssao_blur.frag
diff options
context:
space:
mode:
authorEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
committerEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
commit54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch)
treed915ac7828703ce4b963efdd9728a1777ba18c1e /apps/openmb/resources/shaders/ssao_blur.frag
move to own git serverHEADmaster
Diffstat (limited to 'apps/openmb/resources/shaders/ssao_blur.frag')
-rw-r--r--apps/openmb/resources/shaders/ssao_blur.frag45
1 files changed, 45 insertions, 0 deletions
diff --git a/apps/openmb/resources/shaders/ssao_blur.frag b/apps/openmb/resources/shaders/ssao_blur.frag
new file mode 100644
index 0000000..e093eff
--- /dev/null
+++ b/apps/openmb/resources/shaders/ssao_blur.frag
@@ -0,0 +1,45 @@
+#version 330 core
+in vec2 vUV;
+out float FragColor;
+
+uniform sampler2D ssaoInput;
+uniform vec2 texelSize;
+uniform int horizontal;
+
+
+const float w0 = 0.2270270270;
+const float w1 = 0.1945945946;
+const float w2 = 0.1216216216;
+const float w3 = 0.0540540541;
+const float w4 = 0.0162162162;
+
+void main()
+{
+ float result = 0.0;
+ if (horizontal == 1)
+ {
+ result += texture(ssaoInput, vUV).r * w0;
+ result += texture(ssaoInput, vUV + vec2(texelSize.x, 0.0)).r * w1;
+ result += texture(ssaoInput, vUV - vec2(texelSize.x, 0.0)).r * w1;
+ result += texture(ssaoInput, vUV + vec2(2.0 * texelSize.x, 0.0)).r * w2;
+ result += texture(ssaoInput, vUV - vec2(2.0 * texelSize.x, 0.0)).r * w2;
+ result += texture(ssaoInput, vUV + vec2(3.0 * texelSize.x, 0.0)).r * w3;
+ result += texture(ssaoInput, vUV - vec2(3.0 * texelSize.x, 0.0)).r * w3;
+ result += texture(ssaoInput, vUV + vec2(4.0 * texelSize.x, 0.0)).r * w4;
+ result += texture(ssaoInput, vUV - vec2(4.0 * texelSize.x, 0.0)).r * w4;
+ }
+ else
+ {
+ result += texture(ssaoInput, vUV).r * w0;
+ result += texture(ssaoInput, vUV + vec2(0.0, texelSize.y)).r * w1;
+ result += texture(ssaoInput, vUV - vec2(0.0, texelSize.y)).r * w1;
+ result += texture(ssaoInput, vUV + vec2(0.0, 2.0 * texelSize.y)).r * w2;
+ result += texture(ssaoInput, vUV - vec2(0.0, 2.0 * texelSize.y)).r * w2;
+ result += texture(ssaoInput, vUV + vec2(0.0, 3.0 * texelSize.y)).r * w3;
+ result += texture(ssaoInput, vUV - vec2(0.0, 3.0 * texelSize.y)).r * w3;
+ result += texture(ssaoInput, vUV + vec2(0.0, 4.0 * texelSize.y)).r * w4;
+ result += texture(ssaoInput, vUV - vec2(0.0, 4.0 * texelSize.y)).r * w4;
+ }
+
+ FragColor = result;
+}