diff --git a/src/renderer.cpp b/src/renderer.cpp index b9b82b2..36ab5af 100644 --- a/src/renderer.cpp +++ b/src/renderer.cpp @@ -27,6 +27,7 @@ #define MIN_DISTANCE_BODY_RADIUS_MULT 2.75f #define MIN_DISTANCE_SPACECRAFT_DEFAULT 0.5f #define MIN_DISTANCE_SPACECRAFT_PARENT_RADIUS_MULT 0.1f +#define CAMERA_NEAR_CULL_DISTANCE 0.05f // Zoom direction enumeration for improved readability enum ZoomDirection { @@ -254,7 +255,9 @@ static float get_target_min_distance(RenderState* render_state, SimulationState* return CAMERA_MIN_DISTANCE; } - return target_radius * MIN_DISTANCE_BODY_RADIUS_MULT; + float radius_based_dist = target_radius * MIN_DISTANCE_BODY_RADIUS_MULT; + float cull_based_dist = target_radius + CAMERA_NEAR_CULL_DISTANCE + 0.001f; + return (radius_based_dist > cull_based_dist) ? radius_based_dist : cull_based_dist; } static void zoom_camera(RenderState* render_state, SimulationState* sim, ZoomDirection zoom_dir) {