X-Git-Url: http://git.lukelau.me/?p=opengl.git;a=blobdiff_plain;f=equirectangularfrag.glsl;fp=equirectangularfrag.glsl;h=dfe855e6ea5453cfddc6d67e7f8509cbbe5c2b01;hp=0000000000000000000000000000000000000000;hb=a03f2bc751bbd7f91cbc2f52d2f0f6e753d6f776;hpb=210d1b08cec40845d849e89baea8a9cc96917f60 diff --git a/equirectangularfrag.glsl b/equirectangularfrag.glsl new file mode 100644 index 0000000..dfe855e --- /dev/null +++ b/equirectangularfrag.glsl @@ -0,0 +1,19 @@ +#version 330 + +in vec3 localPos; +out vec4 fragColor; + +uniform sampler2D equirectangularMap; + +const vec2 invAtan = vec2(0.1591, 0.3183); + +vec2 sampleSphericalMap(vec3 v) { + vec2 uv = vec2(atan(v.z, v.x), asin(v.y)); + uv *= invAtan; + return uv + 0.5; +} + +void main() { + vec2 uv = sampleSphericalMap(normalize(localPos)); + fragColor = vec4(texture(equirectangularMap, uv).rgb, 1.f); +}