varying highp vec4 var_position;
varying mediump vec3 var_normal;
varying mediump vec2 var_texcoord0;
varying mediump vec4 var_light;
uniform mediump vec4 params;
const vec4 peakColor = vec4(0.5372549, 0.545098039, 0.929411764, 1.0);
const vec4 horizonColor = vec4(0.52941176, 0.843137254, 0.98823529, 1.0);
highp float pi = 3.141592653589793;
lowp vec4 c1 = vec4(0.0,0.0,0.0, 1.0); //black -> 0.5
mediump float colorBand = 1.0 / 128.0;
void main()
{
highp float f = floor(var_texcoord0.y / colorBand) * colorBand;
if(f < 0.5) {
gl_FragColor = c1;
}
else if(f >= 0.5 && f < 0.55) {
gl_FragColor = mix(horizonColor, peakColor, (f-0.5)/0.05);
}
else if(f >= 0.55){
gl_FragColor = peakColor;
}
}
Very very simple
But I think I like it

Its using the previous colors from the old Amiga game (for sky color) and a ‘light’ horizon. Might play with the colors a bit, and I need to add rotation and pitch (thats whats in the params constant) but its a fair bit simpler. And kinda leans more into that 80s look rather than realistic.
< update > sorry didnt realize windows did something weird with the copy paste. There were some invisible chars in the script that were doing bad things. Weird. I seems it came from Calc (when copy the numbers in, it adds huge invisible chars - very odd).