I did discover the answer to this. From experience in my astronomy simulation, it seems that Camera
far properties are connected in some way. If
near is too small, it will effectively decrease
far. I believe they need to be within about 10 orders of magnitude of each other to work properly (e.g., near = 1e-5, far = 1e5, is OK).
The way I solved this limitation in I, Voyager is to dynamically change both
far together based on camera distance to its parent. So in our camera code we have:
const NEAR_DIST_MULTIPLIER := 0.1
const FAR_DIST_MULTIPLIER := 1e9
# then, in our every-frame process:
var dist := translation.length()
near = dist * NEAR_DIST_MULTIPLIER
far = dist * FAR_DIST_MULTIPLIER
This allows us to view the solar system from afar (200 au) and to zoom in to small bodies, which is >> 10 orders of magnitude difference in scale. The only effect is when you zoom very close to a small body, then the orbit paths of distant planets will start to disappear. But that's barely noticeable and almost looks intentional.