From 709138cf5dadfd005ffbeb7fcd26b4d4bd84b58d Mon Sep 17 00:00:00 2001 From: Kelsi Date: Sun, 8 Feb 2026 22:24:11 -0800 Subject: [PATCH] Relax aggressive taxi culling to show more detail MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit With VRAM model caching eliminating loading hitches, we can now render much more detail during taxi flights for better visual quality. Changes: - boundRadius threshold: 15.0 → 2.0 (now show buildings, trees, large props) - Foliage: was skipping ALL, now only skip small bushes/flowers < 5 units - Trees: now visible (removed collisionTreeTrunk blanket skip) - Underwater: -5.0 → -10.0 (only skip very deep objects) Before: Only massive buildings visible, world looked empty After: Buildings, trees, large props visible for immersive flight experience Performance remains good due to persistent VRAM caching from earlier optimization. --- src/rendering/m2_renderer.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/rendering/m2_renderer.cpp b/src/rendering/m2_renderer.cpp index a2b61d35..8b882a57 100644 --- a/src/rendering/m2_renderer.cpp +++ b/src/rendering/m2_renderer.cpp @@ -1714,18 +1714,18 @@ void M2Renderer::render(const Camera& camera, const glm::mat4& view, const glm:: const M2ModelGPU& model = *currentModel; - // Aggressive culling during taxi for smooth flight + // Relaxed culling during taxi (VRAM caching eliminates loading hitches) if (onTaxi_) { - // Skip all small/medium models (props, foliage, decorations) - if (model.boundRadius < 15.0f) { + // Skip tiny props (barrels, crates, small debris) + if (model.boundRadius < 2.0f) { continue; } - // Skip all foliage and trees (even large ones cause hitching during load) - if (model.collisionNoBlock || model.collisionTreeTrunk) { + // Skip small ground foliage (bushes, flowers) but keep trees + if (model.collisionNoBlock && model.boundRadius < 5.0f) { continue; } - // Skip underwater objects (water is opaque from altitude) - if (instance.position.z < -5.0f) { + // Skip deep underwater objects (opaque water hides them anyway) + if (instance.position.z < -10.0f) { continue; } }