The clipping plane is flat, so the distance between the camera and the
clipping plane varies based on where screen location. I.e. it is closest
in the center and farther at the corners. Add a offset to elev to
account of this. It would be better to use a sin or to calculate
distances directly, but this is easy and appears to work.
double height = GTK_WIDGET(opengl)->allocation.height;
double ang = atan(height/FOV_DIST);
double atmos = 100000;
- double near = MAX(elev - atmos, 10); // View 100km of atmosphere
- double far = elev + 2*EARTH_R + atmos; // on both sides of the earth
+ double near = MAX(elev*0.75 - atmos, 50); // View 100km of atmosphere
+ double far = elev + 2*EARTH_R + atmos; // on both sides of the earth
grits_viewer_get_location(GRITS_VIEWER(opengl), &lat, &lon, &elev);
glViewport(0, 0, width, height);