First time poster, so apologies if this isn't the right sub-forum.
I'm working on a project capable of rendering the earth. When the user is viewing the planet from space objects on the ground become very difficult to see due to distance. To combat this, I've implemented a dynamic scaling system which stops objects from falling below a certain screen pixel size. It's a primitive check: if the width of the bounding sphere is < than a certain pixel threshold, I scale the object to maintain a constant size until the user is close enough to it that the bounding sphere exceeds that size. This works really nicely. The user can zoom into objects on the ground to see them in great detail, but when they pull away from the earth they shrink down to ~30px wide.
The issue I have is when the user is low to the ground but looking towards the horizon. Due to the fact that my objects are all scaled and forced to maintain a size of ≥ 30px, objects in the distance fail to shrink away and the user is able to see objects over hundreds of miles. I've tried to combat this by shrinking the minimum bounding sphere size for objects as the user approaches the ground and the pitch of the camera gets closer to the horizon line (so that when their pitch is ~90degrees and they're below a certain altitude the minimum bounding sphere size drops to 0 and distant objects disappear), but this results in objects ‘snapping’ from their fixed 30px size to some arbitrary value as the user passes the thresholds I've set.
I can't seem to come up with a sensible way to handle this. Does anyone have any suggestions?