Adding UV Guide and fix/improve error checking to avoid more MAV errors

meow-7.2.2
Beq 2018-11-28 20:16:40 +00:00
parent 316251e49c
commit ae601f480f
7 changed files with 604 additions and 355 deletions

View File

@ -9154,6 +9154,17 @@
<key>Value</key>
<real>10.0</real>
</map>
<key>FSMeshPreviewUVGuideFile</key>
<map>
<key>Comment</key>
<string>filename of the texture to use as a UV guide for mesh preview.</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>String</string>
<key>Value</key>
<string>salt_And_pepper.png</string>
</map>
<key>MigrateCacheDirectory</key>
<map>
<key>Comment</key>

View File

@ -336,6 +336,7 @@ BOOL LLFloaterModelPreview::postBuild()
getChild<LLCheckBoxCtrl>("show_textures")->setCommitCallback(boost::bind(&LLFloaterModelPreview::onViewOptionChecked, this, _1));
getChild<LLCheckBoxCtrl>("show_skin_weight")->setCommitCallback(boost::bind(&LLFloaterModelPreview::onViewOptionChecked, this, _1));
getChild<LLCheckBoxCtrl>("show_joint_positions")->setCommitCallback(boost::bind(&LLFloaterModelPreview::onViewOptionChecked, this, _1));
getChild<LLCheckBoxCtrl>("show_uv_guide")->setCommitCallback(boost::bind(&LLFloaterModelPreview::onViewOptionChecked, this, _1)); // <FS:Beq> - Add UV guide overlay to pmesh preview
childDisable("upload_skin");
childDisable("upload_joints");
@ -478,16 +479,7 @@ void LLFloaterModelPreview::onViewOptionChecked(LLUICtrl* ctrl)
{
if (mModelPreview)
{
// <FS:Beq> only show explode when phsyics is on
// mModelPreview->mViewOption[ctrl->getName()] = !mModelPreview->mViewOption[ctrl->getName()];
auto name = ctrl->getName();
mModelPreview->mViewOption[name] = !mModelPreview->mViewOption[name];
if (name == "show_physics")
{
auto enabled = mModelPreview->mViewOption[name];
childSetEnabled("physics_explode", enabled);
childSetVisible("physics_explode", enabled);
}
mModelPreview->mViewOption[ctrl->getName()] = !mModelPreview->mViewOption[ctrl->getName()];
mModelPreview->refresh();
}
}
@ -1381,6 +1373,7 @@ LLModelPreview::LLModelPreview(S32 width, S32 height, LLFloater* fmp)
mBuildQueueMode = GLOD_QUEUE_GREEDY;
mBuildBorderMode = GLOD_BORDER_UNLOCK;
mBuildOperator = GLOD_OPERATOR_EDGE_COLLAPSE;
mUVGuideTexture = LLViewerTextureManager::getFetchedTextureFromFile(gSavedSettings.getString("FSMeshPreviewUVGuideFile"), FTT_LOCAL_FILE, TRUE, LLGLTexture::BOOST_PREVIEW); // <FS:Beq> - Add UV guide overlay to pmesh preview
for (U32 i = 0; i < LLModel::NUM_LODS; ++i)
{
@ -3090,15 +3083,9 @@ void LLModelPreview::updateStatusMessages()
}
// <FS:Beq> flag degenerates here rather than deferring to a MAV error later
mFMP->childSetVisible("physics_status_message_text", mHasDegenerate); //display or clear
auto degenerateIcon = mFMP->getChild<LLIconCtrl>("physics_status_message_icon");
degenerateIcon->setVisible(mHasDegenerate);
if (mHasDegenerate)
{
has_physics_error |= PhysicsError::DEGENERATE;
mFMP->childSetValue("physics_status_message_text", mFMP->getString("phys_status_degenerate_triangles"));
LLUIImagePtr img = LLUI::getUIImage("ModelImport_Status_Error");
degenerateIcon->setImage(img);
}
// </FS:Beq>
@ -3209,14 +3196,17 @@ void LLModelPreview::updateStatusMessages()
//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)
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; j < mdl->mPhysics.mHull.size(); ++j)
{
// <FS:Beq> Better error handling
auto num_hulls = mdl->mPhysics.mHull.size();
for (U32 j = 0; j < num_hulls; ++j)
{
// </FS:Beq>
if (mdl->mPhysics.mHull[j].size() > 256)
{
physExceededVertexLimit = TRUE;
@ -3224,6 +3214,13 @@ void LLModelPreview::updateStatusMessages()
break;
}
}
// <FS:Beq> Better error handling
if (num_hulls > 256) // decomp cannot have more than 256 hulls (http://wiki.secondlife.com/wiki/Mesh/Mesh_physics)
{
LL_INFOS() << "Physical model " << mdl->mLabel << " exceeds 256 hull limitation." << LL_ENDL;
has_physics_error |= PhysicsError::TOOMANYHULLS;
}
// </FS:Beq>
}
}
@ -3232,18 +3229,67 @@ void LLModelPreview::updateStatusMessages()
has_physics_error |= PhysicsError::TOOMANYVERTSINHULL;
}
if (!(has_physics_error & PhysicsError::DEGENERATE)){ // only update this field (incluides clearing it) if it is not already in use.
mFMP->childSetVisible("physics_status_message_text", physExceededVertexLimit);
LLIconCtrl* physStatusIcon = mFMP->getChild<LLIconCtrl>("physics_status_message_icon");
physStatusIcon->setVisible(physExceededVertexLimit);
if (physExceededVertexLimit)
// <FS:Beq> standardise error handling
//if (!(has_physics_error & PhysicsError::DEGENERATE)){ // only update this field (incluides clearing it) if it is not already in use.
// 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);
// }
//}
#ifdef OPENSIM
has_physics_error |= PhysicsError::NOHAVOK;
#endif
auto physStatusIcon = mFMP->getChild<LLIconCtrl>("physics_status_message_icon");
if (has_physics_error != PhysicsError::NONE)
{
mFMP->childSetVisible("physics_status_message_text", true); //display or clear
physStatusIcon->setVisible(true);
// The order here is important.
if (has_physics_error & PhysicsError::TOOMANYHULLS)
{
mFMP->childSetValue("physics_status_message_text", mFMP->getString("phys_status_hull_limit_exceeded"));
LLUIImagePtr img = LLUI::getUIImage("ModelImport_Status_Error");
physStatusIcon->setImage(img);
}
else if (has_physics_error & PhysicsError::TOOMANYVERTSINHULL)
{
mFMP->childSetValue("physics_status_message_text", mFMP->getString("phys_status_vertex_limit_exceeded"));
LLUIImagePtr img = LLUI::getUIImage("ModelImport_Status_Error");
physStatusIcon->setImage(img);
}
else if (has_physics_error & PhysicsError::DEGENERATE)
{
mFMP->childSetValue("physics_status_message_text", mFMP->getString("phys_status_degenerate_triangles"));
LLUIImagePtr img = LLUI::getUIImage("ModelImport_Status_Error");
physStatusIcon->setImage(img);
}
else if (has_physics_error & PhysicsError::NOHAVOK)
{
mFMP->childSetValue("physics_status_message_text", mFMP->getString("phys_status_no_havok"));
LLUIImagePtr img = LLUI::getUIImage("ModelImport_Status_Warning");
physStatusIcon->setImage(img);
}
else
{
// This should not happen
mFMP->childSetValue("physics_status_message_text", mFMP->getString("phys_status_unknown_error"));
LLUIImagePtr img = LLUI::getUIImage("ModelImport_Status_Warning");
physStatusIcon->setImage(img);
}
}
else
{
mFMP->childSetVisible("physics_status_message_text", false); //display or clear
physStatusIcon->setVisible(false);
}
// </FS:Beq>
if (getLoadState() >= LLModelLoader::ERROR_PARSING)
{
mModelNoErrors = false;
@ -3276,7 +3322,7 @@ void LLModelPreview::updateStatusMessages()
//if (!mModelNoErrors || mHasDegenerate)
//{
// mFMP->childDisable("ok_btn");
if (!mModelNoErrors || mHasDegenerate)
if (!mModelNoErrors || (has_physics_error > PhysicsError::NOHAVOK)) // block for all cases of phsyics error except NOHAVOK
{
mFMP->childDisable("ok_btn");
mFMP->childDisable("calculate_btn");
@ -3355,14 +3401,41 @@ void LLModelPreview::updateStatusMessages()
mViewOption["show_physics"] = true;
fmp->childSetValue("show_physics", true);
}
// <FS:Beq> handle hiding of hull only explode slider
//else
//{
// fmp->disableViewOption("show_physics");
// mViewOption["show_physics"] = false;
// fmp->childSetValue("show_physics", false);
//}
mViewOption["show_physics"] = true;
if (phys_hulls > 0)
{
fmp->enableViewOption("physics_explode");
fmp->enableViewOption("exploder_label");
fmp->childSetVisible("physics_explode", true);
fmp->childSetVisible("exploder_label", true);
}
else
{
fmp->disableViewOption("physics_explode");
fmp->disableViewOption("exploder_label");
fmp->childSetVisible("physics_explode", false);
fmp->childSetVisible("exploder_label", false);
}
}
else
{
fmp->disableViewOption("show_physics");
fmp->childSetVisible("physics_explode", false);
fmp->disableViewOption("physics_explode");
fmp->childSetVisible("exploder_label", false);
fmp->disableViewOption("exploder_label");
mViewOption["show_physics"] = false;
fmp->childSetValue("show_physics", false);
}
// </FS:Beq>
//bool use_hull = fmp->childGetValue("physics_use_hull").asBoolean();
@ -3404,7 +3477,6 @@ void LLModelPreview::updateStatusMessages()
{
fmp->childEnable("Simplify");
}
// <FS:Ansariel> Enable mesh analysis in SL only for now
//if (phys_tris || phys_hulls > 0)
//{
@ -3418,29 +3490,30 @@ void LLModelPreview::updateStatusMessages()
fmp->childEnable("simplify_cancel");
fmp->childEnable("decompose_cancel");
}
}
// <FS:Beq> move the closing bracket for the if(fmp) to prevent possible crash
// }
LLCtrlSelectionInterface* iface = fmp->childGetSelectionInterface("physics_lod_combo");
S32 which_mode = 0;
S32 file_mode = 1;
if (iface)
{
which_mode = iface->getFirstSelectedIndex();
file_mode = iface->getItemCount() - 1;
}
LLCtrlSelectionInterface* iface = fmp->childGetSelectionInterface("physics_lod_combo");
S32 which_mode = 0;
S32 file_mode = 1;
if (iface)
{
which_mode = iface->getFirstSelectedIndex();
file_mode = iface->getItemCount() - 1;
}
if (which_mode == file_mode)
{
mFMP->childEnable("physics_file");
mFMP->childEnable("physics_browse");
if (which_mode == file_mode)
{
mFMP->childEnable("physics_file");
mFMP->childEnable("physics_browse");
}
else
{
mFMP->childDisable("physics_file");
mFMP->childDisable("physics_browse");
}
}
else
{
mFMP->childDisable("physics_file");
mFMP->childDisable("physics_browse");
}
// </FS:Beq>
LLSpinCtrl* crease = mFMP->getChild<LLSpinCtrl>("crease_angle");
if (mRequestedCreaseAngle[mPreviewLOD] == -1.f)
@ -3921,6 +3994,7 @@ BOOL LLModelPreview::render()
bool skin_weight = mViewOption["show_skin_weight"];
bool textures = mViewOption["show_textures"];
bool physics = mViewOption["show_physics"];
bool uv_guide = mViewOption["show_uv_guide"]; // <FS:Beq> Add UV guide overlay in mesh preview
// <FS:Beq> Extra configurability, to be exposed later as controls?
static LLCachedControl<LLColor4> canvas_col(gSavedSettings, "MeshPreviewCanvasColor");
@ -4200,16 +4274,31 @@ BOOL LLModelPreview::render()
mTextureSet.insert(tex);
}
}
// <FS:Beq> improved mesh uploader
// else
// {
// gGL.diffuseColor4f(1,1,1,1);
// }
}
else if (uv_guide)
{
if(mUVGuideTexture)
{
if (mUVGuideTexture->getDiscardLevel() > -1)
{
gGL.getTexUnit(0)->bind(mUVGuideTexture, true);
}
}
gGL.diffuseColor4fv(static_cast<LLColor4>(base_col).mV);
}
else
{
// <FS:Beq> improved mesh uploader
// gGL.diffuseColor4f(1,1,1,1);
// gGL.diffuseColor4f(1,1,1,1);
gGL.diffuseColor4fv(static_cast<LLColor4>(base_col).mV);
// </FS:Beq>
}
buffer->drawRange(LLRender::TRIANGLES, 0, buffer->getNumVerts()-1, buffer->getNumIndices(), 0);
gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
// <FS:Beq> improved mesh uploader

View File

@ -339,6 +339,7 @@ private:
LLFloater* mFMP;
LLPointer<LLViewerFetchedTexture> mUVGuideTexture; // <FS:Beq> Add UV Guide texture overlay
BOOL mNeedsUpdate;
bool mDirty;
bool mGenLOD;

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@ -4,9 +4,10 @@
can_drag_on_left="false"
can_minimize="true"
can_resize="true"
height="600"
min_height="600"
height="585"
min_height="585"
width="1024"
top="0"
min_width="1024"
name="Model Preview"
title="Upload Model"
@ -33,9 +34,11 @@
<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="phys_status_degenerate_triangles">Physics mesh too dense; remove the small, thin triangles (see preview)</string>
<string name="phys_status_no_havok">The OpenSim version is not supported for physics upload in SL.</string>
<string name="phys_status_vertex_limit_exceeded">Some physical hulls exceed the vertex limit (256); try an alternative 'Analyze Method'.</string>
<string name="phys_status_hull_limit_exceeded">Some models exceed the hull limit (256); try 'simplify'.</string>
<string name="phys_status_degenerate_triangles">Physics mesh too dense; remove the small, thin triangles (see preview.)</string>
<string name="phys_status_no_havok">The OpenSim version is not recommended for physics upload in SL. Results may be unpredictable.</string>
<string name="phys_status_unknown_error">An unrecognised error was detected.</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>
@ -43,7 +46,7 @@
<panel
follows="top|left"
height="580"
height="570"
layout="topleft"
left="3"
name="left_panel"
@ -1248,6 +1251,32 @@
top_pad="10"
value="0.0"
width="80"/>
<panel
follows="top|left"
layout="topleft"
border="true"
left="400"
height="165"
top="100"
width="200"
name="avatar_model_hint_panel"
>
<text
left="5"
width="200"
height="165"
name="avatar_model_hint_text"
wrap="true"
word_wrap="true"
type="string">
Tip:
Multiple attachments on an attachment point increases the likelihood of disconnects during Teleports &amp; region crossings.
Too many items use the default (right hand) unnecessarily.
For more reliable attachments, please consider using a different attachment point.
</text>
</panel>
</panel>
</tab_container>
<panel
@ -1442,7 +1471,7 @@ Lowest:
<panel
border="true"
layout="topleft"
left_pad="265"
left_pad="15"
name="physics_breakdown_panel"
width="120"
height="100">
@ -1487,6 +1516,113 @@ Analysed:
[PHU]
</text>-->
</panel>
<panel
follows="top|left"
layout="topleft"
left_pad="100"
height="100"
border="true"
name="preview_controls_panel"
width="260">
<panel height="18" >
<text
height="18"
layout="topleft"
name="preview_controls_title"
left="3"
width="120">
Preview controls
</text>
<combo_box
can_resize="false"
follows="top|left"
left="-85"
top_delta="-2"
height="18"
layout="topleft"
name="preview_lod_combo"
width="80"
tool_tip="LOD to view in preview render">
<combo_item name="high"> High </combo_item>
<combo_item name="medium"> Medium </combo_item>
<combo_item name="low"> Low </combo_item>
<combo_item name="lowest"> Lowest </combo_item>
</combo_box>
</panel>
<view_border
bevel_style="none"
follows="top|left"
height="0"
layout="topleft"
left="3"
name="preview_controls_border"
top_pad="5"
halign="center"
width="250"/>
<check_box
follows="top|left"
label="Edges"
label_text.text_color="White"
layout="topleft"
name="show_edges"
width="70"
left="0"
top_pad="10"/>
<check_box
follows="top|left"
label="Textures"
label_text.text_color="White"
layout="topleft"
name="show_textures"
left_pad="0"/>
<check_box
follows="top|left"
label="UV guide"
label_text.text_color="White"
layout="topleft"
name="show_uv_guide"
left_pad="0"/>
<check_box
follows="top|left"
top_pad="10"
left="0"
width="70"
label="Physics"
label_text.text_color="White"
name="show_physics"/>
<text
layout="topleft"
left_pad="2"
height="16"
name="exploder_label">Explode hulls</text>
<slider
name="physics_explode"
show_text="false"
top_delta="1"
follows="top|left"
valign="center"
left_pad="2"
min_val="0.0"
max_val="3.0"
width="100"/>
<check_box
follows="top|left"
top_pad="15"
label="Weights"
label_text.text_color="White"
layout="topleft"
width="70"
name="show_skin_weight"
left="0"/>
<check_box
follows="top|left"
label="Joints"
height="0"
layout="topleft"
label_text.text_color="White"
name="show_joint_positions"
left_pad="0"/>
</panel>
<!-- ========== NOTE MESSAGE ========== -->
<text
font="SansSerif"
@ -1524,8 +1660,9 @@ Analysed:
top="0"
left="640"
background_visible="true"
width="375">
<text
width="375"
height="570">
<!--<text
follows="left|top"
layout="topleft"
left="0"
@ -1535,31 +1672,8 @@ Analysed:
height="15"
width="290">
Preview:
</text>
<panel
can_resize="false"
follows="top|left"
height="20"
name="right_upper_panel"
top="8"
left="60"
background_visible="true"
width="315">
<combo_box
top_pad="3"
can_resize="false"
follows="top|left"
height="18"
layout="topleft"
name="preview_lod_combo"
width="75"
tool_tip="LOD to view in preview render">
<combo_item name="high"> High </combo_item>
<combo_item name="medium"> Medium </combo_item>
<combo_item name="low"> Low </combo_item>
<combo_item name="lowest"> Lowest </combo_item>
</combo_box>
</panel>
</text>-->
</panel>
<panel
border="true"
@ -1567,71 +1681,7 @@ Analysed:
follows="top|left|right|bottom"
layout="topleft"
name="preview_panel"
top="30"
top="5"
width="375"
height="525"/>
<panel
follows="left|right|bottom"
layout="topleft"
height="40"
name="lower_right_panel"
top_pad="5"
width="375">
<check_box
follows="right|bottom"
label="Edges"
label_text.text_color="White"
layout="topleft"
name="show_edges"
width="70"
left="0"
top_pad="8"/>
<check_box
follows="right|bottom"
left_pad="8"
label="Physics"
label_text.text_color="White"
name="show_physics"/>
<check_box
follows="right|bottom"
label="Textures"
label_text.text_color="White"
layout="topleft"
name="show_textures"
left_pad="0"/>
<check_box
follows="right|bottom"
label="Weights"
label_text.text_color="White"
layout="topleft"
name="show_skin_weight"
left_pad="0"/>
<check_box
follows="right|bottom"
label="Joints"
label_text.text_color="White"
layout="topleft"
name="show_joint_positions"
left_pad="0"/>
<text
follows="right|bottom"
layout="topleft"
left="2"
name="physics_explode_label"
top="85"
width="150">
Preview Spread:
</text>
<slider
name="physics_explode"
follows="right|bottom"
valign="center"
top="15"
left="80"
min_val="0.0"
max_val="3.0"
height="20"
width="120"/>
</panel>
/>
</floater>

View File

@ -4,9 +4,10 @@
can_drag_on_left="false"
can_minimize="true"
can_resize="true"
height="600"
min_height="600"
height="585"
min_height="585"
width="1024"
top="0"
min_width="1024"
name="Model Preview"
title="Upload Model"
@ -33,9 +34,11 @@
<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="phys_status_degenerate_triangles">Physics mesh too dense; remove the small, thin triangles (see preview)</string>
<string name="phys_status_no_havok">The OpenSim version is not supported for physics upload in SL.</string>
<string name="phys_status_vertex_limit_exceeded">Some physical hulls exceed the vertex limit (256); try an alternative 'Analyze Method'.</string>
<string name="phys_status_hull_limit_exceeded">Some models exceed the hull limit (256); try 'simplify'.</string>
<string name="phys_status_degenerate_triangles">Physics mesh too dense; remove the small, thin triangles (see preview.)</string>
<string name="phys_status_no_havok">The OpenSim version is not recommended for physics upload in SL. Results may be unpredictable.</string>
<string name="phys_status_unknown_error">An unrecognised error was detected.</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>
@ -43,7 +46,7 @@
<panel
follows="top|left"
height="580"
height="570"
layout="topleft"
left="3"
name="left_panel"
@ -1248,6 +1251,32 @@
top_pad="10"
value="0.0"
width="80"/>
<panel
follows="top|left"
layout="topleft"
border="true"
left="400"
height="165"
top="100"
width="200"
name="avatar_model_hint_panel"
>
<text
left="5"
width="200"
height="165"
name="avatar_model_hint_text"
wrap="true"
word_wrap="true"
type="string">
Tip:
Multiple attachments on an attachment point increases the likelihood of disconnects during Teleports &amp; region crossings.
Too many items use the default (right hand) unnecessarily.
For more reliable attachments, please consider using a different attachment point.
</text>
</panel>
</panel>
</tab_container>
<panel
@ -1442,7 +1471,7 @@ Lowest:
<panel
border="true"
layout="topleft"
left_pad="265"
left_pad="15"
name="physics_breakdown_panel"
width="120"
height="100">
@ -1487,6 +1516,113 @@ Analysed:
[PHU]
</text>-->
</panel>
<panel
follows="top|left"
layout="topleft"
left_pad="100"
height="100"
border="true"
name="preview_controls_panel"
width="260">
<panel height="18" >
<text
height="18"
layout="topleft"
name="preview_controls_title"
left="3"
width="120">
Preview controls
</text>
<combo_box
can_resize="false"
follows="top|left"
left="-85"
top_delta="-2"
height="18"
layout="topleft"
name="preview_lod_combo"
width="80"
tool_tip="LOD to view in preview render">
<combo_item name="high"> High </combo_item>
<combo_item name="medium"> Medium </combo_item>
<combo_item name="low"> Low </combo_item>
<combo_item name="lowest"> Lowest </combo_item>
</combo_box>
</panel>
<view_border
bevel_style="none"
follows="top|left"
height="0"
layout="topleft"
left="3"
name="preview_controls_border"
top_pad="5"
halign="center"
width="250"/>
<check_box
follows="top|left"
label="Edges"
label_text.text_color="White"
layout="topleft"
name="show_edges"
width="70"
left="0"
top_pad="10"/>
<check_box
follows="top|left"
label="Textures"
label_text.text_color="White"
layout="topleft"
name="show_textures"
left_pad="0"/>
<check_box
follows="top|left"
label="UV guide"
label_text.text_color="White"
layout="topleft"
name="show_uv_guide"
left_pad="0"/>
<check_box
follows="top|left"
top_pad="10"
left="0"
width="70"
label="Physics"
label_text.text_color="White"
name="show_physics"/>
<text
layout="topleft"
left_pad="2"
height="16"
name="exploder_label">Explode hulls</text>
<slider
name="physics_explode"
show_text="false"
top_delta="1"
follows="top|left"
valign="center"
left_pad="2"
min_val="0.0"
max_val="3.0"
width="100"/>
<check_box
follows="top|left"
top_pad="15"
label="Weights"
label_text.text_color="White"
layout="topleft"
width="70"
name="show_skin_weight"
left="0"/>
<check_box
follows="top|left"
label="Joints"
height="0"
layout="topleft"
label_text.text_color="White"
name="show_joint_positions"
left_pad="0"/>
</panel>
<!-- ========== NOTE MESSAGE ========== -->
<text
font="SansSerif"
@ -1506,7 +1642,7 @@ Analysed:
left_pad="1"
name="warning_message"
parse_urls="true"
top_delta="2"
top_delta="0"
wrap="true"
width="462"
visible="false">
@ -1524,8 +1660,9 @@ Analysed:
top="0"
left="640"
background_visible="true"
width="375">
<text
width="375"
height="570">
<!--<text
follows="left|top"
layout="topleft"
left="0"
@ -1535,31 +1672,8 @@ Analysed:
height="15"
width="290">
Preview:
</text>
<panel
can_resize="false"
follows="top|left"
height="20"
name="right_upper_panel"
top="8"
left="60"
background_visible="true"
width="315">
<combo_box
top_pad="3"
can_resize="false"
follows="top|left"
height="18"
layout="topleft"
name="preview_lod_combo"
width="75"
tool_tip="LOD to view in preview render">
<combo_item name="high"> High </combo_item>
<combo_item name="medium"> Medium </combo_item>
<combo_item name="low"> Low </combo_item>
<combo_item name="lowest"> Lowest </combo_item>
</combo_box>
</panel>
</text>-->
</panel>
<panel
border="true"
@ -1567,72 +1681,7 @@ Analysed:
follows="top|left|right|bottom"
layout="topleft"
name="preview_panel"
top="30"
top="5"
width="375"
height="525"/>
<panel
follows="left|right|bottom"
layout="topleft"
height="40"
name="lower_right_panel"
top_pad="5"
width="375">
<check_box
follows="right|bottom"
label="Edges"
label_text.text_color="White"
layout="topleft"
left_delta="0"
name="show_edges"
width="70"
left="0"
top_pad="8"/>
<check_box
follows="right|bottom"
left_pad="8"
label="Physics"
label_text.text_color="White"
name="show_physics"/>
<check_box
follows="right|bottom"
label="Textures"
label_text.text_color="White"
layout="topleft"
name="show_textures"
left_pad="0"/>
<check_box
follows="right|bottom"
label="Weights"
label_text.text_color="White"
layout="topleft"
name="show_skin_weight"
left_pad="0"/>
<check_box
follows="right|bottom"
label="Joints"
label_text.text_color="White"
layout="topleft"
name="show_joint_positions"
left_pad="0"/>
<text
follows="right|bottom"
layout="topleft"
left="2"
name="physics_explode_label"
top="85"
width="150">
Preview Spread:
</text>
<slider
name="physics_explode"
follows="right|bottom"
valign="center"
top="15"
left="80"
min_val="0.0"
max_val="3.0"
height="20"
width="120"/>
</panel>
/>
</floater>

View File

@ -4,9 +4,10 @@
can_drag_on_left="false"
can_minimize="true"
can_resize="true"
height="600"
min_height="600"
height="585"
min_height="585"
width="1024"
top="0"
min_width="1024"
name="Model Preview"
title="Upload Model"
@ -33,9 +34,11 @@
<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="phys_status_degenerate_triangles">Physics mesh too dense; remove the small, thin triangles (see preview)</string>
<string name="phys_status_no_havok">The OpenSim version is not supported for physics upload in SL.</string>
<string name="phys_status_vertex_limit_exceeded">Some physical hulls exceed the vertex limit (256); try an alternative 'Analyze Method'.</string>
<string name="phys_status_hull_limit_exceeded">Some models exceed the hull limit (256); try 'simplify'.</string>
<string name="phys_status_degenerate_triangles">Physics mesh too dense; remove the small, thin triangles (see preview.)</string>
<string name="phys_status_no_havok">The OpenSim version is not recommended for physics upload in SL. Results may be unpredictable.</string>
<string name="phys_status_unknown_error">An unrecognised error was detected.</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>
@ -43,7 +46,7 @@
<panel
follows="top|left"
height="580"
height="570"
layout="topleft"
left="3"
name="left_panel"
@ -1248,6 +1251,32 @@
top_pad="10"
value="0.0"
width="80"/>
<panel
follows="top|left"
layout="topleft"
border="true"
left="400"
height="165"
top="100"
width="200"
name="avatar_model_hint_panel"
>
<text
left="5"
width="200"
height="165"
name="avatar_model_hint_text"
wrap="true"
word_wrap="true"
type="string">
Tip:
Multiple attachments on an attachment point increases the likelihood of disconnects during Teleports &amp; region crossings.
Too many items use the default (right hand) unnecessarily.
For more reliable attachments, please consider using a different attachment point.
</text>
</panel>
</panel>
</tab_container>
<panel
@ -1442,7 +1471,7 @@ Lowest:
<panel
border="true"
layout="topleft"
left_pad="265"
left_pad="15"
name="physics_breakdown_panel"
width="120"
height="100">
@ -1487,6 +1516,113 @@ Analysed:
[PHU]
</text>-->
</panel>
<panel
follows="top|left"
layout="topleft"
left_pad="100"
height="100"
border="true"
name="preview_controls_panel"
width="260">
<panel height="18" >
<text
height="18"
layout="topleft"
name="preview_controls_title"
left="3"
width="120">
Preview controls
</text>
<combo_box
can_resize="false"
follows="top|left"
left="-85"
top_delta="-2"
height="18"
layout="topleft"
name="preview_lod_combo"
width="80"
tool_tip="LOD to view in preview render">
<combo_item name="high"> High </combo_item>
<combo_item name="medium"> Medium </combo_item>
<combo_item name="low"> Low </combo_item>
<combo_item name="lowest"> Lowest </combo_item>
</combo_box>
</panel>
<view_border
bevel_style="none"
follows="top|left"
height="0"
layout="topleft"
left="3"
name="preview_controls_border"
top_pad="5"
halign="center"
width="250"/>
<check_box
follows="top|left"
label="Edges"
label_text.text_color="White"
layout="topleft"
name="show_edges"
width="70"
left="0"
top_pad="10"/>
<check_box
follows="top|left"
label="Textures"
label_text.text_color="White"
layout="topleft"
name="show_textures"
left_pad="0"/>
<check_box
follows="top|left"
label="UV guide"
label_text.text_color="White"
layout="topleft"
name="show_uv_guide"
left_pad="0"/>
<check_box
follows="top|left"
top_pad="10"
left="0"
width="70"
label="Physics"
label_text.text_color="White"
name="show_physics"/>
<text
layout="topleft"
left_pad="2"
height="16"
name="exploder_label">Explode hulls</text>
<slider
name="physics_explode"
show_text="false"
top_delta="1"
follows="top|left"
valign="center"
left_pad="2"
min_val="0.0"
max_val="3.0"
width="100"/>
<check_box
follows="top|left"
top_pad="15"
label="Weights"
label_text.text_color="White"
layout="topleft"
width="70"
name="show_skin_weight"
left="0"/>
<check_box
follows="top|left"
label="Joints"
height="0"
layout="topleft"
label_text.text_color="White"
name="show_joint_positions"
left_pad="0"/>
</panel>
<!-- ========== NOTE MESSAGE ========== -->
<text
font="SansSerif"
@ -1506,7 +1642,7 @@ Analysed:
left_pad="1"
name="warning_message"
parse_urls="true"
top_delta="2"
top_delta="0"
wrap="true"
width="462"
visible="false">
@ -1524,8 +1660,9 @@ Analysed:
top="0"
left="640"
background_visible="true"
width="375">
<text
width="375"
height="570">
<!--<text
follows="left|top"
layout="topleft"
left="0"
@ -1535,31 +1672,8 @@ Analysed:
height="15"
width="290">
Preview:
</text>
<panel
can_resize="false"
follows="top|left"
height="20"
name="right_upper_panel"
top="8"
left="60"
background_visible="true"
width="315">
<combo_box
top_pad="3"
can_resize="false"
follows="top|left"
height="18"
layout="topleft"
name="preview_lod_combo"
width="75"
tool_tip="LOD to view in preview render">
<combo_item name="high"> High </combo_item>
<combo_item name="medium"> Medium </combo_item>
<combo_item name="low"> Low </combo_item>
<combo_item name="lowest"> Lowest </combo_item>
</combo_box>
</panel>
</text>-->
</panel>
<panel
border="true"
@ -1567,72 +1681,7 @@ Analysed:
follows="top|left|right|bottom"
layout="topleft"
name="preview_panel"
top="30"
top="5"
width="375"
height="525"/>
<panel
follows="left|right|bottom"
layout="topleft"
height="40"
name="lower_right_panel"
top_pad="5"
width="375">
<check_box
follows="right|bottom"
label="Edges"
label_text.text_color="White"
layout="topleft"
left_delta="0"
name="show_edges"
width="70"
left="0"
top_pad="8"/>
<check_box
follows="right|bottom"
left_pad="8"
label="Physics"
label_text.text_color="White"
name="show_physics"/>
<check_box
follows="right|bottom"
label="Textures"
label_text.text_color="White"
layout="topleft"
name="show_textures"
left_pad="0"/>
<check_box
follows="right|bottom"
label="Weights"
label_text.text_color="White"
layout="topleft"
name="show_skin_weight"
left_pad="0"/>
<check_box
follows="right|bottom"
label="Joints"
label_text.text_color="White"
layout="topleft"
name="show_joint_positions"
left_pad="0"/>
<text
follows="right|bottom"
layout="topleft"
left="2"
name="physics_explode_label"
top="85"
width="150">
Preview Spread:
</text>
<slider
name="physics_explode"
follows="right|bottom"
valign="center"
top="15"
left="80"
min_val="0.0"
max_val="3.0"
height="20"
width="120"/>
</panel>
/>
</floater>