ona/debug/ca.frag

29 lines
686 B
GLSL

#version 430
layout (binding = 0) uniform sampler2D sprite;
layout (location = 0) in vec4 color;
layout (location = 1) in vec2 uv;
layout (location = 0) out vec4 texel;
layout (binding = 0) readonly buffer Camera {
mat4 projection_matrix;
};
layout (binding = 1) readonly buffer Material {
float effect_magnitude;
};
void main() {
const vec2 red_channel_uv = uv + vec2(effect_magnitude, 0.0);
const vec2 blue_channel_uv = uv + vec2(-effect_magnitude, 0.0);
const vec4 original_texel = texture(sprite, uv);
texel = vec4(texture(sprite, red_channel_uv).r, original_texel.g, texture(sprite, blue_channel_uv).b, original_texel.a) * color;
if (texel.a == 0) {
discard;
}
}