From 63fe3b4c52b2772b9e5aa977f082ef9749987de7 Mon Sep 17 00:00:00 2001 From: Beq Date: Sun, 3 Dec 2023 01:55:34 +0000 Subject: [PATCH] FIRE-32267 - Allow Reliable LOD generation to be set as default A new setting has been added to the mesh uploader settings tab allowing the user to toggle their preference for GLOD as default behaviour. default remains as per LL. --- indra/newview/app_settings/settings.xml | 11 +++++++ indra/newview/llfloatermodelpreview.cpp | 13 ++++++++- indra/newview/llmodelpreview.cpp | 29 ++++++++++++++----- .../default/xui/en/floater_model_preview.xml | 12 ++++++-- 4 files changed, 54 insertions(+), 11 deletions(-) diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 2942ed0c42..c069d2d3fa 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -9361,6 +9361,17 @@ Value 1 + FSMeshUploadUseGLODAsDefault + + Comment + Use the 'reliable' (GLOD) method for LODs as the default when opening Collada files. + Persist + 1 + Type + Boolean + Value + 0 + MeshPreviewCanvasColor Comment diff --git a/indra/newview/llfloatermodelpreview.cpp b/indra/newview/llfloatermodelpreview.cpp index 9afbb35078..6d97b07155 100644 --- a/indra/newview/llfloatermodelpreview.cpp +++ b/indra/newview/llfloatermodelpreview.cpp @@ -148,7 +148,18 @@ mAvatarTabIndex(0) mLODMode[LLModel::LOD_HIGH] = LLModelPreview::LOD_FROM_FILE; for (U32 i = 0; i < LLModel::LOD_HIGH; i++) { - mLODMode[i] = LLModelPreview::MESH_OPTIMIZER_AUTO; + // FIRE-32267 - Set default LOD mode to GLOD + // mLODMode[i] = LLModelPreview::MESH_OPTIMIZER_AUTO; + static LLCachedControl default_to_glod(gSavedSettings, "FSMeshUploadUseGLODAsDefault"); + if( default_to_glod ) + { + mLODMode[i] = LLModelPreview::GENERATE; + } + else + { + mLODMode[i] = LLModelPreview::MESH_OPTIMIZER_AUTO; + } + // } } diff --git a/indra/newview/llmodelpreview.cpp b/indra/newview/llmodelpreview.cpp index fed88818a0..fde68b1db5 100644 --- a/indra/newview/llmodelpreview.cpp +++ b/indra/newview/llmodelpreview.cpp @@ -3667,8 +3667,17 @@ void LLModelPreview::updateLodControls(S32 lod) } else // auto generate, the default case for all LoDs except High { - fmp->mLODMode[lod] = MESH_OPTIMIZER_AUTO; - + // FIRE-32267 - Allow GLOD to be default + // fmp->mLODMode[lod] = MESH_OPTIMIZER_AUTO; + if( lod_mode == GENERATE ) + { + fmp->mLODMode[lod] = GENERATE; + } + else + { + fmp->mLODMode[lod] = MESH_OPTIMIZER_AUTO; + } + // //don't actually regenerate lod when refreshing UI mLODFrozen = true; @@ -3693,7 +3702,7 @@ void LLModelPreview::updateLodControls(S32 lod) mFMP->getChild("lod_mode_" + lod_name[lod])->selectNthItem(mRequestedLoDMode[lod]); - if (mRequestedLoDMode[lod] == 0) + if (mRequestedLoDMode[lod] == 0 || mRequestedLoDMode[lod] == GENERATE) // FIRE-32267 - Allow GLOD to be default { limit->setVisible(true); threshold->setVisible(false); @@ -5077,11 +5086,15 @@ bool LLModelPreview::lodQueryCallback() S32 lod = preview->mLodsQuery.back(); preview->mLodsQuery.pop_back(); // Improved LOD generation -#ifdef USE_GLOD_AS_DEFAULT - preview->genGlodLODs(lod, 3, false); -#else - preview->genMeshOptimizerLODs(lod, MESH_OPTIMIZER_AUTO, 3, false); -#endif + static LLCachedControl default_to_glod(gSavedSettings, "FSMeshUploadUseGLODAsDefault"); + if (default_to_glod()) + { + preview->genGlodLODs(lod, 3, false); + } + else + { + preview->genMeshOptimizerLODs(lod, MESH_OPTIMIZER_AUTO, 3, false); + } // if (preview->mLookUpLodFiles && (lod == LLModel::LOD_HIGH)) { diff --git a/indra/newview/skins/default/xui/en/floater_model_preview.xml b/indra/newview/skins/default/xui/en/floater_model_preview.xml index e81fb96942..0297498b50 100644 --- a/indra/newview/skins/default/xui/en/floater_model_preview.xml +++ b/indra/newview/skins/default/xui/en/floater_model_preview.xml @@ -1475,7 +1475,7 @@ follows="top|left" top_pad="8" left="24" - width="300" + width="200" label="Auto-enable weights" tool_tip="Automatically set weights enabled for meshes with rigging info" name="mesh_preview_auto_weights"/> @@ -1483,10 +1483,18 @@ control_name="FSMeshUploadAutoShowWeightsWhenEnabled" follows="top|left" left_pad="5" - width="300" + width="200" label="Auto-preview weights" tool_tip="Automatically show weights in preview for meshes with rigging info" name="mesh_preview_auto_show_weights"/> +