#version 150 struct Gradient { vec4 color1; vec4 color2; }; uniform Gradient _gradient; uniform sampler2D cover; out vec4 fragColor; in vec2 vUV; in vec2 vCoverUV; void main() { fragColor = mix(_gradient.color1, _gradient.color2, vec4(clamp(vUV.x, 0.0, 1.0))); float c = min(abs(texture(cover, vCoverUV).x), 1.0); fragColor *= c; }