26 lines
557 B
GLSL
26 lines
557 B
GLSL
#version 450
|
|
|
|
layout(set = 0, binding = 0) uniform sampler2D tex;
|
|
|
|
layout(location = 0) in vec2 uv;
|
|
layout(location = 0) out vec4 out_color;
|
|
|
|
layout(push_constant) uniform UBO {
|
|
layout(offset = 80) float alpha;
|
|
} data;
|
|
|
|
void main() {
|
|
out_color = textureLod(tex, uv, 0);
|
|
|
|
// We expect this shader to output pre-alpha-multiplied color values.
|
|
// alpha < 0.0 means that this shader should ignore the texture's alpha
|
|
// value.
|
|
if (data.alpha < 0.0) {
|
|
out_color.a = -data.alpha;
|
|
out_color.rgb *= -data.alpha;
|
|
} else {
|
|
out_color *= data.alpha;
|
|
}
|
|
}
|
|
|