atagen

monolith

public
Star0
Watch0
ea84a35c5001582708df9030c9886179ed84e593
1
ssh://brewery@pls.lobotomise.me:33/atagen/monolith.git

Blame: crates/render-vk/shaders/effect.frag

96db497859dcatagen2026-10-16 11:27 UTC1
#version 450
96db497859dcatagen2026-10-16 11:27 UTC2
#extension GL_GOOGLE_include_directive : require
96db497859dcatagen2026-10-16 11:27 UTC3
#include "push.glsl"
47259c39793fatagen2026-10-17 10:13 UTC4
#include "clip.glsl"
96db497859dcatagen2026-10-16 11:27 UTC5
96db497859dcatagen2026-10-16 11:27 UTC6
layout(set = 0, binding = 0) uniform sampler2D tex;
96db497859dcatagen2026-10-16 11:27 UTC7
layout(location = 0) in vec2 v_uv;
96db497859dcatagen2026-10-16 11:27 UTC8
layout(location = 0) out vec4 out_color;
96db497859dcatagen2026-10-16 11:27 UTC9
96db497859dcatagen2026-10-16 11:27 UTC10
const int MOVE = 0;
96db497859dcatagen2026-10-16 11:27 UTC11
const int SPAWN = 1;
96db497859dcatagen2026-10-16 11:27 UTC12
const int CLOSE = 2;
96db497859dcatagen2026-10-16 11:27 UTC13
96db497859dcatagen2026-10-16 11:27 UTC14
// The transition hook. Custom shaders will replace this function.
96db497859dcatagen2026-10-16 11:27 UTC15
vec4 effect(vec4 color, vec2 uv, float progress, int kind) {
96db497859dcatagen2026-10-16 11:27 UTC16
    if (kind == SPAWN) {
96db497859dcatagen2026-10-16 11:27 UTC17
        return color * progress;
96db497859dcatagen2026-10-16 11:27 UTC18
    }
96db497859dcatagen2026-10-16 11:27 UTC19
    if (kind == CLOSE) {
96db497859dcatagen2026-10-16 11:27 UTC20
        return color * (1.0 - progress);
96db497859dcatagen2026-10-16 11:27 UTC21
    }
96db497859dcatagen2026-10-16 11:27 UTC22
    return color;
96db497859dcatagen2026-10-16 11:27 UTC23
}
96db497859dcatagen2026-10-16 11:27 UTC24
96db497859dcatagen2026-10-16 11:27 UTC25
void main() {
96db497859dcatagen2026-10-16 11:27 UTC26
    vec4 color = texture(tex, v_uv) * pc.color.a;
47259c39793fatagen2026-10-17 10:13 UTC27
    out_color = effect(color, v_uv, pc.effect.x, int(pc.effect.y)) * clip_alpha();
96db497859dcatagen2026-10-16 11:27 UTC28
}