fteqw/engine/shaders/glsl/postproc_fisheye.glsl

32 lines
640 B
Text
Raw Normal View History

!!cvarf ffov
//fisheye view rendering, for silly fovs that are still playable.
#ifdef VERTEX_SHADER
attribute vec2 v_texcoord;
varying vec2 texcoord;
void main()
{
texcoord = v_texcoord.xy;
gl_Position = ftetransform();
}
#endif
#ifdef FRAGMENT_SHADER
uniform samplerCube s_t0;
varying vec2 texcoord;
uniform float cvar_ffov;
void main()
{
vec3 tc;
vec2 d;
vec2 ang;
d = texcoord;
ang.x = sqrt(d.x*d.x+d.y*d.y)*radians(cvar_ffov);
ang.y = -atan(d.y, d.x);
tc.x = sin(ang.x) * cos(ang.y);
tc.y = sin(ang.x) * sin(ang.y);
tc.z = cos(ang.x);
gl_FragColor = textureCube(s_t0, tc);
}
#endif