I have a simple camera based 'modern' OpenGL 3D graphics display, for rendering relatively simple objects that are constructed from collections of specified points, lines and curves (e.g. a cube, cylinder, etc). Shown below is example of shaded cube constructed from 6 separate defined surfaces. Each surface has a minimal underlying tessellation of two triangles to enable the surface shading.
I have also implemented a zoom in limit to ensure that any point that the mouse cursor collides with (and is highlighted red) becomes in effect the far frustum. In the pictures shown the camera is unable to zoom 'past' the Point and 'into' the cube and beyond out the other side.
IF I zoom in on any part of one of the cube surfaces with the mouse hovering over any part of the flat surfaces, away from any of the corner points, the surface shading/render quality does not show any noticeable change with zoom distance. BUT when I zoom in on any one of the corner points I start to see a deterioration of the surface shading after only small amount of zooming in.
The third picture below shows the degraded shading effect with the camera orientation rotated so looking down on the top of the cube, and the 'broken' surface alloing part of the interior of the cube to be seen. Curiously, as the last picture shows, if I continue to zoom in on a corner point the shading quality begins to improve again and by the time the zoom in limit is nearly reached (i.e. minimum allowed camera to point distance) the surface shading looks normal and as expected to be.
Can anyone suggest why I am seeing this difference in behaviour and what might be the fix?



