diff options
| author | Gabriel Schneider <[email protected]> | 2026-09-29 22:05:58 -0300 |
|---|---|---|
| committer | Gabriel Schneider <[email protected]> | 2026-10-01 00:12:17 -0300 |
| commit | 813a0b2bf3c110f2287d7136f0dfc540c0978cd6 (patch) | |
| tree | 8250da85fde87d8cc4ccbbceaa304b1bed82be4e /shaders/prebuilt/bloom-down.frag.glsl | |
| parent | 714da820136ac89d6a79ed0141e7325829ab8204 (diff) | |
| download | pardes-813a0b2bf3c110f2287d7136f0dfc540c0978cd6.tar.gz pardes-813a0b2bf3c110f2287d7136f0dfc540c0978cd6.zip | |
The GUI embeds its shaders' GLSL from shaders/ always: the 14 prebuilt copies, identical to their sources, go, and so does the label saying which was used
shaders/prebuilt/*.glsl were byte-identical to shaders/X.glsl or to prefix.glsl + post/X.glsl (checked with cmp, all 14), kept only so a -Dprebuilt-shaders build could name them; EffectCode and Config then labelled the GUI's shader source as live or prebuilt. The GUI embeds shaderSource (a concatenation, no glslc) either way now; the prebuilt SPIR-V stays, and zig build shaders refreshes only it. Config's report and EffectCode lose their GUI shader source line.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Diffstat (limited to 'shaders/prebuilt/bloom-down.frag.glsl')
| -rw-r--r-- | shaders/prebuilt/bloom-down.frag.glsl | 39 |
1 files changed, 0 insertions, 39 deletions
diff --git a/shaders/prebuilt/bloom-down.frag.glsl b/shaders/prebuilt/bloom-down.frag.glsl deleted file mode 100644 index 3465926d..00000000 --- a/shaders/prebuilt/bloom-down.frag.glsl +++ /dev/null @@ -1,39 +0,0 @@ -#version 450 - -// Bloom, down (docs/effects.md G4): one step of a dual Kawase filter, a -// source half as big again sampled at five points, the first step over the -// frame through a bright pass in linear light. Written to a float target. - -layout(set = 2, binding = 0) uniform sampler2D source; -layout(std140, set = 3, binding = 0) uniform BloomStep { - // xy: a source texel; zw: a target texel. - vec4 texels; - // x: the bright pass's threshold on a channel's linear peak (above the - // page's own), 0 for none (a later step); y: its soft knee. - vec4 pass; -} u; - -layout(location = 0) out vec4 o_col; - -vec3 toLinear(vec3 c) { - return mix(pow((c + 0.055) / 1.055, vec3(2.4)), c / 12.92, lessThanEqual(c, vec3(0.04045))); -} - -vec3 tap(vec2 uv) { - vec3 c = texture(source, uv).rgb; - if (u.pass.x <= 0.0) return c; - c = toLinear(c); - float peak = max(c.r, max(c.g, c.b)); - return c * smoothstep(u.pass.x, u.pass.x + u.pass.y, peak); -} - -void main() { - vec2 uv = gl_FragCoord.xy * u.texels.zw; - vec2 h = 0.5 * u.texels.xy; - vec3 sum = tap(uv) * 4.0; - sum += tap(uv - h); - sum += tap(uv + h); - sum += tap(uv + vec2(h.x, -h.y)); - sum += tap(uv - vec2(h.x, -h.y)); - o_col = vec4(sum / 8.0, 1.0); -} |
