Там градиент неба рисовался исходя из абсолютной высоты на меше, а не как следует.

Первая попытка внедрения менталрэйвских кусков шейдера в мое творение.

// пиксельный шейдер
float4 PSMain(VSOutput input) : COLOR0
{
float3 ntexcoor=normalize(input.viewVec.xyz);
float height=pow((ntexcoor.y),2);
//цвет у горизонта 150 179 209
//цвет в зените 66 88 135
float red=(150-84*height)/255;
float green=(179-91*height)/255;
float blue=(209-74*height)/255;
float4 diffuse =float4(red,green,blue,1);
float leng=length(ntexcoor.xz);
float2 textcoor = ntexcoor.xz*(1.5-ntexcoor.y)+0.01*float2(time,time);
//читаю из текстуры облакаж
float4 cloud=pow(1.3*tex2D(diffuseSampler,textcoor),4);
float mixfactor=pow(abs(sin(time/20.0)),3);
red=lerp(cloud.x,cloud.y,mixfactor);
float4 cloud1=float4(1,1,1,1)-abs(min(float4(red,red,red,red),diffuse));
if(leng>0.949){cloud1=lerp(0,cloud1,20*(0.999-leng));}
cloud1=pow(cloud1,4.07);
if(cloud1.r>cloud1.g+cloud1.b){cloud1.r=cloud1.g;}
cloud1.r=cloud1.b;
cloud1.g=cloud1.b;
float4 result=lerp(diffuse,sqrt(cloud1),pow(cloud1.r,4));
//the sun
float3 sunpos=lightDirection;
float3 pos=normalize(input.viewVec.xyz);
float grad=dot(pos,-sunpos);
float4 sunc=float4(0,0,0,0);
if(grad>0.998){sunc=float4(1,0,0,0);}
//injection of be cool shader
// Be Cool
float a = acos(grad);
float r = 150*(1-grad);
float b = 1.9 * sin(8.0 * r - time - 2.0 * a);
b = 0.3125 / r + cos(7.0 * a + b * b) / (100.0 * r);
b *= smoothstep(0.2, 0.8, b);
sunc = float4(b, 0.67 * b + 0.1 * sin(a + time), 0.0, 1.0);
// возвращаем результирующий цвет пиксела
return result+2*sunc;
}
А также починил чудовищно разноцветные края облачков и еще кой-чо.