Orange/src/Orange/Render/Shaders/fs_SkyGradient.frag

21 lines
523 B
GLSL

#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);
}