quakeforge/libs/video/renderer/glsl/quakeski.frag
Bill Currie 14f089d08e Correct the orientation of the skybox (for glsl).
It turns out the expected orientation of the sky cube is exactly that of
Blender's default cube looked at from the front view (num-1) and the front
face being the nearest face. This put's Marcher's sun nicely in the view
when exiting the cave.
2012-09-12 19:06:07 +09:00

48 lines
926 B
GLSL

uniform sampler2D palette;
uniform sampler2D solid;
uniform sampler2D trans;
uniform float realtime;
uniform vec4 fog;
varying vec3 direction;
const float SCALE = 189.0 / 64.0;
float
sqr (float x)
{
return x * x;
}
vec4
fogBlend (vec4 color)
{
float f;
vec4 fog_color = vec4 (fog.rgb, 1.0);
f = exp (-sqr (fog.a * gl_FragCoord.z / gl_FragCoord.w));
return vec4 (mix (fog_color.rgb, color.rgb, f), color.a);
}
void
main (void)
{
float len;
float pix;
vec2 flow = vec2 (1.0, 1.0);
vec2 st, base;
vec3 dir = direction;
dir.z *= 3.0;
len = dot (dir, dir);
len = SCALE * inversesqrt (len);
base = direction.yx * vec2(1.0, -1.0) * len;
st = base + flow * realtime / 8.0;
pix = texture2D (trans, st).r;
if (pix == 0.0) {
st = base + flow * realtime / 16.0;
pix = texture2D (solid, st).r;
}
gl_FragColor = fogBlend (texture2D (palette, vec2 (pix, 0.0)));
}