diff options
| author | Gabriel Schneider <[email protected]> | 2026-09-29 07:41:35 -0300 |
|---|---|---|
| committer | Gabriel Schneider <[email protected]> | 2026-10-01 00:12:16 -0300 |
| commit | 411d0b6059192b75853e220e1242b694ae461a3e (patch) | |
| tree | 50f8bb207f3cdda497bdd84658a2d3ea74b4bc2b /shaders/bloom-up.frag.glsl | |
| parent | da920ca49e3f5d1649e811bbdc3ddba482c6aae4 (diff) | |
| parent | 5526c68beec454cfe607a579723b97b4848e7d3a (diff) | |
| download | pardes-411d0b6059192b75853e220e1242b694ae461a3e.tar.gz pardes-411d0b6059192b75853e220e1242b694ae461a3e.zip | |
Merge: 9P rounds 9-17 + render DPI, dark tints, G4-G10
Diffstat (limited to 'shaders/bloom-up.frag.glsl')
| -rw-r--r-- | shaders/bloom-up.frag.glsl | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/shaders/bloom-up.frag.glsl b/shaders/bloom-up.frag.glsl new file mode 100644 index 00000000..368076ed --- /dev/null +++ b/shaders/bloom-up.frag.glsl @@ -0,0 +1,26 @@ +#version 450 + +// Bloom, up (docs/effects.md G4): one step of a dual Kawase filter back up, +// a tent of eight points over the smaller level. Float target. + +layout(set = 2, binding = 0) uniform sampler2D source; +layout(std140, set = 3, binding = 0) uniform BloomStep { + vec4 texels; + vec4 pass; +} u; + +layout(location = 0) out vec4 o_col; + +void main() { + vec2 uv = gl_FragCoord.xy * u.texels.zw; + vec2 h = 0.5 * u.texels.xy; + vec3 sum = texture(source, uv + vec2(-2.0 * h.x, 0.0)).rgb; + sum += texture(source, uv + vec2(-h.x, h.y)).rgb * 2.0; + sum += texture(source, uv + vec2(0.0, 2.0 * h.y)).rgb; + sum += texture(source, uv + vec2(h.x, h.y)).rgb * 2.0; + sum += texture(source, uv + vec2(2.0 * h.x, 0.0)).rgb; + sum += texture(source, uv + vec2(h.x, -h.y)).rgb * 2.0; + sum += texture(source, uv + vec2(0.0, -2.0 * h.y)).rgb; + sum += texture(source, uv + vec2(-h.x, -h.y)).rgb * 2.0; + o_col = vec4(sum / 12.0, 1.0); +} |
