52 lines
1.2 KiB
GLSL
52 lines
1.2 KiB
GLSL
#version 330 core
|
|
|
|
out vec4 FragColor;
|
|
|
|
uniform vec2 uViewport;
|
|
uniform float uMajorStep;
|
|
uniform float uMinorStep;
|
|
uniform bool uLightMode;
|
|
|
|
float gridLine(float stepPx) {
|
|
vec2 coord = gl_FragCoord.xy;
|
|
vec2 q = coord / stepPx;
|
|
|
|
vec2 q = abs(fract(q - 0.5) - 0.5) / fwidth(stepPx);
|
|
float line = 1.0 - min(min(q.x, q.y), 1.0);
|
|
|
|
return line;
|
|
}
|
|
|
|
void main() {
|
|
vec2 viewport = max(uViewport, vec2(1.0));
|
|
vec2 uv = gl_FragCoord.xy / viewport;
|
|
|
|
vec3 topCol, botCol, majCol, minCol;
|
|
float majStrength, minStrength;
|
|
float vignettePow, vignetteStrength;
|
|
|
|
topCol = vec3(0.99, 0.99, 1.00);
|
|
botCol = vec3(0.94, 0.95, 0.98);
|
|
|
|
minorCol = vec3(0.80, 0.82, 0.87);
|
|
majorCol = vec3(0.70, 0.73, 0.80);
|
|
|
|
minorStrength = 0.22;
|
|
majorStrength = 0.35;
|
|
vignettePow = 0.12;
|
|
vignetteStrength = 0.35;
|
|
|
|
vec3 col = mix(botCol, topCol, uv.y);
|
|
float minor = gridLine(max(uMinorStep, 1.0));
|
|
float major = gridLine(max(uMajorStep, 1.0));
|
|
|
|
col = mix(col, minorCol, minStrength * minor);
|
|
col = mix(col, majorCol, majStrength * major);
|
|
|
|
vec2 p = uv * 2.0 - 1.0;
|
|
float v = clamp(1.0 - dot(p, p) * 0.12 , 0.0, 1.0);
|
|
col *= mix(1.0, v, 0.35);
|
|
|
|
FragColor = vec4(col, 1.0);
|
|
}
|