1
0
Fork 0
forked from fte/fteqw
fteqw/engine/shaders/vulkan/postproc_fisheye.glsl
Spoike b7784f41d9 Fix potentially serious vulkan performance issue.
Stripped obsolete vk_nv_dedicated_allocation extension.
Misc fixes for warnings.
Linux now defaults to using ~/.local/share/fte instead of ~/.fte for greater consistency.
Other misc linux tweaks.


git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5267 fc73d0e0-1445-4013-8a0c-d673dee63da5
2018-06-18 16:44:29 +00:00

30 lines
609 B
GLSL

!!cvarf ffov
!!samps reflectcube
#include "sys/defs.h"
//fisheye view rendering, for silly fovs that are still playable.
layout(location=0) varying vec2 texcoord;
#ifdef VERTEX_SHADER
void main()
{
texcoord = v_texcoord.xy;
gl_Position = ftetransform();
}
#endif
#ifdef FRAGMENT_SHADER
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_reflectcube, tc);
}
#endif