Fix #5063
- Ensure that optional geometry objects are properly removed. This provides a massive performance boost, at the cost of visuals. Benchmark on graphics 2 with lowest geometry level: bugged has 202 steady FPS, 230 mostly stable FPS, fixed has 427 steady FPS, 495 mostly stable FPS. - Restrict the removal of objects based on geometry detail to the lowest geometry level. This ignore the different levels of geometry removal that track authors can set for objects, and which was mostly unused: all objects marked for removal at any level are either all removed or all kept.
This commit is contained in:
parent
3f8b78dc41
commit
32a53827a8
@ -72,9 +72,9 @@ void CustomVideoSettingsDialog::beforeAddingWidgets()
|
||||
particles_effects->setValue(UserConfigParams::m_particles_effects);
|
||||
|
||||
SpinnerWidget* geometry_level = getWidget<SpinnerWidget>("geometry_detail");
|
||||
//I18N: Geometry level disabled : lowest level, no details
|
||||
//I18N: Geometry level disabled : lowest level, no details, Level-of-Details distances are low
|
||||
geometry_level->addLabel(_("Very Low"));
|
||||
//I18N: Geometry level low : few details are displayed
|
||||
//I18N: Geometry level low : everything is displayed, Level-of-Details distances are low
|
||||
geometry_level->addLabel(_("Low"));
|
||||
//I18N: Geometry level medium : everything is displayed, Level-of-Details distances are medium
|
||||
geometry_level->addLabel(_("Medium"));
|
||||
|
@ -2357,8 +2357,9 @@ void Track::loadObjects(const XMLNode* root, const std::string& path,
|
||||
{
|
||||
int geo_level = 0;
|
||||
node->get("geometry-level", &geo_level);
|
||||
if (UserConfigParams::m_geometry_level <= 2 &&
|
||||
UserConfigParams::m_geometry_level + geo_level - 2 > 0 &&
|
||||
// Only remove objects in the "very low" geometry detail level.
|
||||
// Other levels are used for LoD distance
|
||||
if (UserConfigParams::m_geometry_level == 2 && geo_level >= 0 &&
|
||||
!NetworkConfig::get()->isNetworking())
|
||||
continue;
|
||||
m_track_object_manager->add(*node, parent, model_def_loader, parent_library);
|
||||
|
Loading…
x
Reference in New Issue
Block a user