1
0
Fork 0
forked from fte/fteqw
fteqw/engine/shaders/vulkan/postproc_stereographic.glsl
Spoike 151bd6d0b1 vulkan: rewrote render target stuff so bloom, r_projection, fxaa, should now be working.
gl: fix r_projection when using vid_restart.
hdr: fixed iris stuff to work in more renderers.
ircclient: don't disconnect instantly. that's just stupid.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5010 fc73d0e0-1445-4013-8a0c-d673dee63da5
2016-07-28 13:18:22 +00:00

37 lines
735 B
GLSL

!!cvarf ffov
!!samps reflectcube
#include "sys/defs.h"
//stereographic view rendering, for high fovs that are still playable.
#ifdef VERTEX_SHADER
varying vec2 texcoord;
//uniform float cvar_ffov;
void main()
{
texcoord = v_texcoord.xy;
//make sure the ffov cvar actually does something meaningful
texcoord *= cvar_ffov / 90.0;
gl_Position = ftetransform();
}
#endif
#ifdef FRAGMENT_SHADER
varying vec2 texcoord;
void main()
{
vec3 tc;
vec2 d;
vec2 ang;
d = texcoord;
//compute the 2d->3d projection
float div = 1.0 + d.x*d.x + d.y*d.y;
tc.x = 2.0*d.x/div;
tc.y = -2.0*d.y/div;
tc.z = -(-1.0 + d.x*d.x + d.y*d.y)/div;
gl_FragColor = textureCube(s_reflectcube, tc);
}
#endif