         discard;
     vec4 color;
     vec2 texcoord;
-    float texcoord_radius;
-    get_lati_texcoord(hgln, hglt, crota, rect, texcoord, texcoord_radius);
+    get_lati_texcoord(hgln, hglt, crota, rect, texcoord);
     if (isdifference == NODIFFERENCE) {
-        color = getColor(texcoord, texcoord, texcoord_radius);
+        color = getColor(texcoord, texcoord, 1);
     } else {
         vec2 difftexcoord;
         float difftexcoord_radius;
-        get_lati_texcoord(hglnDiff, hgltDiff, crotaDiff, differencerect, difftexcoord, difftexcoord_radius);
-        color = getColor(texcoord, difftexcoord, texcoord_radius);
+        get_lati_texcoord(hglnDiff, hgltDiff, crotaDiff, differencerect, difftexcoord);
+        color = getColor(texcoord, difftexcoord, 1);
     }
     gl_FragColor = color;
 }

void get_lati_texcoord(float ln, float lt, float cr, const in vec4 rect, out vec2 texcoord, out float radius) {
    vec2 normalizedScreenpos = (gl_FragCoord.xy - viewportOffset) / viewport - .5;
    normalizedScreenpos *= 2. * vec2(viewport.y / viewport.x, 1.);
    vec4 scrpos = cameraTransformationInverse * vec4(normalizedScreenpos.x, normalizedScreenpos.y, -1., 1.) + .5;


    float theta = scrpos.y * PI;
    float phi = PI + ln + scrpos.x * TWOPI;

    vec3 xcart;
    xcart.x = sin(theta) * cos(phi);
