MAINT-5209 FIXED Cannot upload some models with high level of detail
parent
1a8016c03f
commit
b90b1ccca0
|
|
@ -2736,26 +2736,41 @@ void LLModelPreview::updateStatusMessages()
|
|||
}
|
||||
|
||||
|
||||
//make sure no hulls have more than 256 points in them
|
||||
//warn if hulls have more than 256 points in them
|
||||
BOOL physExceededVertexLimit = FALSE;
|
||||
for (U32 i = 0; mModelNoErrors && i < mModel[LLModel::LOD_PHYSICS].size(); ++i)
|
||||
{
|
||||
LLModel* mdl = mModel[LLModel::LOD_PHYSICS][i];
|
||||
|
||||
if (mdl)
|
||||
{
|
||||
for (U32 j = 0; mModelNoErrors && j < mdl->mPhysics.mHull.size(); ++j)
|
||||
for (U32 j = 0; j < mdl->mPhysics.mHull.size(); ++j)
|
||||
{
|
||||
if (mdl->mPhysics.mHull[j].size() > 256)
|
||||
{
|
||||
mModelNoErrors = false;
|
||||
physExceededVertexLimit = TRUE;
|
||||
LL_INFOS() << "Physical model " << mdl->mLabel << " exceeds vertex per hull limitations." << LL_ENDL;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
mFMP->childSetVisible("physics_status_message_text", physExceededVertexLimit);
|
||||
LLIconCtrl* physStatusIcon = mFMP->getChild<LLIconCtrl>("physics_status_message_icon");
|
||||
physStatusIcon->setVisible(physExceededVertexLimit);
|
||||
if (physExceededVertexLimit)
|
||||
{
|
||||
mFMP->childSetValue("physics_status_message_text", mFMP->getString("phys_status_vertex_limit_exceeded"));
|
||||
LLUIImagePtr img = LLUI::getUIImage("ModelImport_Status_Warning");
|
||||
physStatusIcon->setImage(img);
|
||||
}
|
||||
|
||||
bool errorStateFromLoader = getLoadState() >= LLModelLoader::ERROR_PARSING ? true : false;
|
||||
if (getLoadState() >= LLModelLoader::ERROR_PARSING)
|
||||
{
|
||||
mModelNoErrors = false;
|
||||
LL_INFOS() << "Loader returned errors, model can't be uploaded" << LL_ENDL;
|
||||
}
|
||||
|
||||
bool skinAndRigOk = true;
|
||||
bool uploadingSkin = mFMP->childGetValue("upload_skin").asBoolean();
|
||||
bool uploadingJointPositions = mFMP->childGetValue("upload_joints").asBoolean();
|
||||
|
||||
|
|
@ -2763,19 +2778,23 @@ void LLModelPreview::updateStatusMessages()
|
|||
{
|
||||
if ( uploadingJointPositions && !isRigValidForJointPositionUpload() )
|
||||
{
|
||||
skinAndRigOk = false;
|
||||
}
|
||||
mModelNoErrors = false;
|
||||
LL_INFOS() << "Invalid rig, there might be issues with uploading Joint positions" << LL_ENDL;
|
||||
}
|
||||
}
|
||||
|
||||
if(mModelNoErrors && mModelLoader)
|
||||
{
|
||||
if(!mModelLoader->areTexturesReady() && mFMP->childGetValue("upload_textures").asBoolean())
|
||||
{
|
||||
// Some textures are still loading, prevent upload until they are done
|
||||
mModelNoErrors = false;
|
||||
}
|
||||
}
|
||||
|
||||
if (!mModelNoErrors || errorStateFromLoader || !skinAndRigOk || has_degenerate)
|
||||
// Todo: investigate use of has_degenerate and include into mModelNoErrors upload blocking mechanics
|
||||
// current use of has_degenerate won't block upload permanently - later checks will restore the button
|
||||
if (!mModelNoErrors || has_degenerate)
|
||||
{
|
||||
mFMP->childDisable("ok_btn");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -31,6 +31,7 @@
|
|||
<string name="mesh_status_too_many_vertices">Level of detail has too many vertices.</string>
|
||||
<string name="mesh_status_missing_lod">Missing required level of detail.</string>
|
||||
<string name="mesh_status_invalid_material_list">LOD materials are not a subset of reference model.</string>
|
||||
<string name="phys_status_vertex_limit_exceeded">Some physical hulls exceed vertex limitations.</string>
|
||||
<string name="layer_all">All</string> <!-- Text to display in physics layer combo box for "all layers" -->
|
||||
<string name="decomposing">Analyzing...</string>
|
||||
<string name="simplifying">Simplifying...</string>
|
||||
|
|
@ -1027,19 +1028,19 @@
|
|||
bg_alpha_color="0 0 0 0"
|
||||
bg_opaque_color="0 0 0 0.3"
|
||||
follows="left|top"
|
||||
height="16"
|
||||
height="19"
|
||||
layout="topleft"
|
||||
left="18"
|
||||
name="physics info"
|
||||
top_pad="15"
|
||||
width="589">
|
||||
top_pad="12"
|
||||
width="319">
|
||||
<text
|
||||
follows="top|left"
|
||||
height="15"
|
||||
layout="topleft"
|
||||
left="0"
|
||||
text_color="White"
|
||||
top_pad="0"
|
||||
top_pad="3"
|
||||
name="results_text"
|
||||
width="50">
|
||||
Results:
|
||||
|
|
@ -1077,6 +1078,33 @@
|
|||
Hulls: [HULLS]
|
||||
</text>
|
||||
</panel>
|
||||
<panel
|
||||
bg_alpha_color="0 0 0 0"
|
||||
bg_opaque_color="0 0 0 0.3"
|
||||
follows="left|top"
|
||||
height="19"
|
||||
layout="topleft"
|
||||
left_pad="5"
|
||||
top_delta="0"
|
||||
name="physics message"
|
||||
width="270">
|
||||
<icon
|
||||
follows="left|top"
|
||||
height="16"
|
||||
left="0"
|
||||
layout="topleft"
|
||||
name="physics_status_message_icon"
|
||||
top_pad="0"
|
||||
width="16" />
|
||||
<text
|
||||
follows="left|top"
|
||||
height="15"
|
||||
layout="topleft"
|
||||
left_pad="2"
|
||||
name="physics_status_message_text"
|
||||
width="252"
|
||||
top_delta="3"/>
|
||||
</panel>
|
||||
</panel>
|
||||
<!-- MODIFIERS PANEL -->
|
||||
<panel
|
||||
|
|
|
|||
Loading…
Reference in New Issue