I did watch that tutorial. It was pretty good. I grabbed that Day/Night shader. I was hoping it had the rain shader attached to it. I found this snow shader online and was able to get it working but I can't figure out how to get rid of the grey background. It works as a PostEffect but pretty much useless thus far.
#version 400
uniform float currenttime;
uniform vec2 buffersize;
float time=currenttime/1000.0;
out vec4 fragData0;
float snow(vec2 uv, float scale, float time)
{
float w=smoothstep(1.0,0.0,-uv.y*(scale/10.0));if(w<.1)return 0.0;
uv+=time/scale;uv.y+=time*2.0/scale;uv.x+=sin(uv.y+time*.5)/scale;
uv*=scale;vec2 s=floor(uv),f=fract(uv),p;float k=3.0,d;
p=.5+.35*sin(11.0*fract(sin((s+scale)*mat2(vec2(7,3),vec2(6,5)))*5.0))-f;d=length(p);k=min(d,k);
k=smoothstep(0.0,k,sin(f.x+f.y)*0.01);
return k*w;
}
void main(void)
{
vec2 uv=(gl_FragCoord.xy*2.0-buffersize.xy)/min(buffersize.x,buffersize.y);
float c=smoothstep(1.0,0.3,clamp(uv.y*.3+.8,0.0,.75));
c+=snow(uv,30.0,time)*.3;
c+=snow(uv,20.0,time)*.5;
c+=snow(uv,15.0,time)*.8;
c+=snow(uv,10.0,time);
c+=snow(uv,8.0,time);
c+=snow(uv,6.0,time);
c+=snow(uv,5.0,time);
vec3 finalColor=(vec3(c));
fragData0 = vec4(finalColor,1.0);
}
//vertex
#version 400
uniform mat4 projectionmatrix;
uniform mat4 drawmatrix;
uniform vec2 offset;
uniform vec2 position[4];
uniform float currenttime;
in vec3 vertex_position;
out float time;
void main(void)
{
gl_Position = projectionmatrix * (drawmatrix * vec4(position[gl_VertexID]+offset, 0.0, 1.0));
}