Files
panopainter/data/shaders/equirect.glsl

37 lines
673 B
GLSL

[[vertex]]
#define PI 3.1415926535897932384626433832795
#define TWO_PI 6.283185307179586476925286766559
uniform mat4 mvp;
in vec4 pos;
in vec2 uvs;
out vec2 uv;
void main()
{
uv = (vec2(1.0) - uvs + vec2(0.25,0.0)) * vec2(TWO_PI, PI);
gl_Position = mvp * vec4(pos.xyz, 1.0);
}
[[fragment]]
uniform samplerCube tex;
in highp vec2 uv;
out highp vec4 frag;
void main()
{
highp float anglex = uv.x;
highp float angley = uv.y;
highp float sx = sin(anglex);
highp float cx = cos(anglex);
highp vec3 dir = vec3(0.0, 0.0, 0.0);
dir.x = sin(angley) * cx;
dir.y = cos(angley);
dir.z = sin(angley) * sx;
frag = texture(tex, dir);
}