#version 450 core in vec2 vUv; out vec4 FragColor; uniform sampler2D uTexture; uniform bool uUseTexture; uniform bool uUseGradient; uniform vec4 uColor; uniform vec4 uGradientTop; uniform vec4 uGradientBottom; void main() { if (uUseTexture) { FragColor = texture(uTexture, vUv) * uColor; } else if (uUseGradient) { FragColor = mix(uGradientTop, uGradientBottom, vUv.y); } else { FragColor = uColor; } }