Having discovered this I looked into the possibility of implementing a floating-point reversed z-buffer within Supermodel, as it would mean Ian's ingenious but complex approach to dynamically calculating near/far clipping values would no longer be needed. Sure enough I found that support for 32-bit floating-point z-buffers have been required since OpenGL 3.0, and Supermodel currently requires OpenGL 4.1+. So all good to go, right? Alas, sadly not.
The idea behind reversing the z-buffer is that most of the depth values are bunched close to 0.0 where floating-point values have a LOT more precision. But OpenGL, rather than using a z-buffer range from 0.0 to 1.0, instead uses a range from -1.0 to 1.0. This means reversing the z-buffer doesn't work as the values are now bunched towards -1.0, which doesn't offer any precision improvement and means floating-point z-buffers are effectively useless. It wasn't until OpenGL 4.5, six years after 32-bit floating-point z-buffers were introduced, that the ability to set the z-buffer range from 0.0 to 1.0 was finally added with the glClipControl() function. Unfortunately, Apple stopped updating OpenGL support for macOS after version 4.1, which means that implementing a floating-point reversed z-buffer within Supermodel would mean breaking all support for macOS. Also glClipControl() is not supported in OpenGL ES, which means that we would not be able to port Supermodel to Android.
The only other way to effectively implement a floating-point reversed z-buffer without using glClipControl() is to write the depth values within the fragment shader. As it turns out we already do this for the quad renderer, but not for the triangle renderer which exists mostly to provide better performance on GPUs not powerful enough to run the quad renderer smoothly; modifying the fragment shader to write depth values would hurt performance due to not being able to perform early z-testing, not to mention the additional calculations that would be required.
Because the Khronos Group took six years to add the glClipControl() function, and because Apple refuses to support OpenGL past version 4.1, and because we don't want to abandon support for macOS, I can't integrate my floating-point reversed z-buffer into Supermodel. It's really annoying because it works so well on my personal build; even with the near clipping plane value set infinitesimally small (e.g. 1.0e-16) there is no visible z-fighting.
If Apple one day decides to drop support for OpenGL altogether, I might say "screw it" and integrate the floating-point z-buffer anyway
