diff options
author | Graham Linden <graham@lindenlab.com> | 2014-08-29 14:03:09 -0700 |
---|---|---|
committer | Graham Linden <graham@lindenlab.com> | 2014-08-29 14:03:09 -0700 |
commit | 6004ad167458914c3b85438b96e81ea8796e368b (patch) | |
tree | 580a5810253c407919be175dcea43abf18d1042e /indra | |
parent | 96a3a858b4ce49a83b18493854abd88f4b14d629 (diff) |
Fix for degen phys tris from falling back to non-hull geo
Diffstat (limited to 'indra')
-rwxr-xr-x | indra/newview/llfloatermodelpreview.cpp | 63 |
1 files changed, 28 insertions, 35 deletions
diff --git a/indra/newview/llfloatermodelpreview.cpp b/indra/newview/llfloatermodelpreview.cpp index 6aa41ef768..cfe2ea0307 100755 --- a/indra/newview/llfloatermodelpreview.cpp +++ b/indra/newview/llfloatermodelpreview.cpp @@ -1441,31 +1441,35 @@ void LLModelPreview::rebuildUploadData() } else { - int searchLOD = (i > LLModel::LOD_HIGH) ? LLModel::LOD_HIGH : i; - while ((searchLOD <= LLModel::LOD_HIGH) && !lod_model) - { - std::string name_to_match = instance.mLabel; - llassert(!name_to_match.empty()); - std::string toAdd; - switch (searchLOD) + if (i != LLModel::LOD_PHYSICS) + { + int searchLOD = (i > LLModel::LOD_HIGH) ? LLModel::LOD_HIGH : i; + while ((searchLOD <= LLModel::LOD_HIGH) && !lod_model) { - case LLModel::LOD_IMPOSTOR: toAdd = "_LOD0"; break; - case LLModel::LOD_LOW: toAdd = "_LOD1"; break; - case LLModel::LOD_MEDIUM: toAdd = "_LOD2"; break; - case LLModel::LOD_PHYSICS: toAdd = "_PHYS"; break; - case LLModel::LOD_HIGH: break; - } + std::string name_to_match = instance.mLabel; + llassert(!name_to_match.empty()); - if (name_to_match.find(toAdd) == -1) - { - name_to_match += toAdd; - } + std::string toAdd; + switch (searchLOD) + { + case LLModel::LOD_IMPOSTOR: toAdd = "_LOD0"; break; + case LLModel::LOD_LOW: toAdd = "_LOD1"; break; + case LLModel::LOD_MEDIUM: toAdd = "_LOD2"; break; + case LLModel::LOD_PHYSICS: toAdd = "_PHYS"; break; + case LLModel::LOD_HIGH: break; + } - // See if we can find an appropriately named model in LOD 'searchLOD' - // - FindModel(mScene[searchLOD], name_to_match, lod_model, transform); - searchLOD++; + if (name_to_match.find(toAdd) == -1) + { + name_to_match += toAdd; + } + + // See if we can find an appropriately named model in LOD 'searchLOD' + // + FindModel(mScene[searchLOD], name_to_match, lod_model, transform); + searchLOD++; + } } // Fall back to old method of index-based association if @@ -1473,22 +1477,11 @@ void LLModelPreview::rebuildUploadData() // if (lod_model) { - if (i == LLModel::LOD_PHYSICS) - { - if (importerDebug) - { - LL_INFOS() << "Falling back collision for " << instance.mLabel << " to " << lod_model->mLabel << LL_ENDL; - } - instance.mLOD[i] = lod_model; - } - else + if (importerDebug) { - if (importerDebug) - { - LL_INFOS() << "Falling back LOD" << i << " for " << instance.mLabel << " to found " << lod_model->mLabel << LL_ENDL; - } - instance.mLOD[i] = lod_model; + LL_INFOS() << "Falling back LOD" << i << " for " << instance.mLabel << " to found " << lod_model->mLabel << LL_ENDL; } + instance.mLOD[i] = lod_model; } else { |