Revision control

++ #version 440
++
++ layout(location = 0) in vec3 localPos;
++ layout(location = 0) out vec4 FragColor;
++
++ layout(binding = 1) uniform sampler2D environmentMap;
++ layout(std140, binding = 2) uniform buf2 {
++ int colorSpace;
++ } ubuf2;
++
++ vec2 sampleSphericalMap(vec3 v)
++ {
++ vec2 uv = vec2(atan(v.z, v.x), asin(v.y));
++ uv *= vec2(0.1591, 0.3183);
++ uv += 0.5;
++ return uv;
++ }
++
++ void main()
++ {
++ vec2 uv = sampleSphericalMap(normalize(localPos)); // make sure to normalize localPos
++
++ vec4 textureColor = texture(environmentMap, uv);
++ // sRGB to Linear
++ if (ubuf2.colorSpace == 1)
++ textureColor.rgb = textureColor.rgb * (textureColor.rgb * (textureColor.rgb * 0.305306011 + 0.682171111) + 0.012522878);
++
++ FragColor = textureColor;
++ }