glproj = `
if (x * x + 4. * y * y < pi * pi + 1e-12) {
float x1 = x, y1 = y, sinx, sinx_2, cosx_2, siny, cosy, sin_2y, sin2y, cos2y, sin2x_2, c, e, f, fx, fy, dxdx, dxdy, dydx, dydy, z, dx, dy;
for (int i = 0; i < 25; i++) {
sinx = sin(x1),
sinx_2 = sin(x1 / 2.),
cosx_2 = cos(x1 / 2.),
siny = sin(y1),
cosy = cos(y1),
sin_2y = sin(2. * y1),
sin2y = siny * siny,
cos2y = cosy * cosy,
sin2x_2 = sinx_2 * sinx_2,
c = 1. - cos2y * cosx_2 * cosx_2;
if (c == 0.0) c = 1e-12;
e = acos(cosy * cosx_2) * sqrt(f = 1. / c),
fx = 2. * e * cosy * sinx_2 - x,
fy = e * siny - y,
dxdx = f * (cos2y * sin2x_2 + e * cosy * cosx_2 * sin2y),
dxdy = f * (0.5 * sinx * sin_2y - e * 2. * siny * sinx_2),
dydx = f * 0.25 * (sin_2y * sinx_2 - e * siny * cos2y * sinx),
dydy = f * (sin2y * cosx_2 + e * sin2x_2 * cosy),
z = dxdy * dydx - dydy * dxdx;
if (z == 0.0) z = 1e-12;
dx = (fy * dxdy - fx * dydy) / z,
dy = (fx * dydx - fy * dxdx) / z;
x1 -= dx, y1 -= dy;
}
lambda = x1;
phi = y1;
} else {
transparent = true;
}
`