#version 450 layout(location = 0) in vec2 coords; layout(location = 0) out vec4 outColor; vec3 srgbToLinear(vec3 color) { bvec3 isLo = lessThanEqual(color, vec3(0.04045f)); vec3 loPart = color / 12.92f; vec3 hiPart = pow((color + 0.055f) / 1.055f, vec3(12.0f / 5.0f)); return mix(hiPart, loPart, isLo); } void main() { const vec3 start = srgbToLinear(vec3(1.0f, 0.51f, 0.56f)); const vec3 end = srgbToLinear(vec3(0.48f, 0.76f, 0.84f)); outColor = vec4(mix(start, end, coords.y), 1.0f); }