What options does the Metal API offer for increasing the precision of the depth buffer, particularly for objects that are farther away?
I've found that even with the nearZ value set uncomfortably far from the camera and the farZ value set uncomfortably close there is still a significant amount of z-fighting between nearby polygons. The depth buffer precision seems to be fantastic for objects that are close to the camera, but really lousy for things that are farther away.
This article suggests some great solutions to the problem, but the code samples are all geared toward OpenGL and DirectX.
How could one go about implementing one of these solutions (i.e. a logarithmic depth buffer) using the Metal API and/or Metal shaders?