1234567891011121314151617181920212223 |
- uniform sampler2D tex;
- uniform sampler2D dtex;
- uniform mat4 invproj;
- in float lf;
- in vec2 tc;
- in vec3 pc;
- out vec4 FragColor;
- vec4 getPosFromUVDepth(vec3 uvDepth, mat4 InverseProjectionMatrix);
- void main(void)
- {
- vec2 xy = gl_FragCoord.xy / screen;
- float FragZ = gl_FragCoord.z;
- vec4 FragmentPos = getPosFromUVDepth(vec3(xy, FragZ), InverseProjectionMatrix);
- float EnvZ = texture(dtex, xy).x;
- vec4 EnvPos = getPosFromUVDepth(vec3(xy, EnvZ), InverseProjectionMatrix);
- float alpha = clamp((EnvPos.z - FragmentPos.z) * 0.3, 0., 1.);
- vec4 color = texture(tex, tc) * vec4(pc, 1.0);
- FragColor = color * alpha * smoothstep(1., 0.8, lf);
- }
|