MAINT-8549, MAINT-8554 - improvements to animesh ARC, restrict joint position overrides to +/-5m
parent
569ce0b7b8
commit
f954abd9df
|
|
@ -435,6 +435,15 @@ void LLJoint::addAttachmentPosOverride( const LLVector3& pos, const LLUUID& mesh
|
|||
// return;
|
||||
//}
|
||||
|
||||
LLVector3 constrained_pos = LLVector3(llclamp(pos[0],-LL_MAX_PELVIS_OFFSET, LL_MAX_PELVIS_OFFSET),
|
||||
llclamp(pos[1],-LL_MAX_PELVIS_OFFSET, LL_MAX_PELVIS_OFFSET),
|
||||
llclamp(pos[2],-LL_MAX_PELVIS_OFFSET, LL_MAX_PELVIS_OFFSET));
|
||||
if (constrained_pos != pos)
|
||||
{
|
||||
LL_DEBUGS("Avatar") << "attachment pos override constrained to "
|
||||
<< constrained_pos << " was " << pos << LL_ENDL;
|
||||
}
|
||||
|
||||
LLVector3 before_pos;
|
||||
LLUUID before_mesh_id;
|
||||
bool has_active_override_before = hasAttachmentPosOverride( before_pos, before_mesh_id );
|
||||
|
|
@ -446,7 +455,7 @@ void LLJoint::addAttachmentPosOverride( const LLVector3& pos, const LLUUID& mesh
|
|||
}
|
||||
m_posBeforeOverrides = getPosition();
|
||||
}
|
||||
m_attachmentPosOverrides.add(mesh_id,pos);
|
||||
m_attachmentPosOverrides.add(mesh_id,constrained_pos);
|
||||
LLVector3 after_pos;
|
||||
LLUUID after_mesh_id;
|
||||
hasAttachmentPosOverride(after_pos, after_mesh_id);
|
||||
|
|
@ -455,7 +464,7 @@ void LLJoint::addAttachmentPosOverride( const LLVector3& pos, const LLUUID& mesh
|
|||
active_override_changed = true;
|
||||
if (do_debug_joint(getName()))
|
||||
{
|
||||
LL_DEBUGS("Avatar") << "av " << av_info << " joint " << getName() << " addAttachmentPosOverride for mesh " << mesh_id << " pos " << pos << LL_ENDL;
|
||||
LL_DEBUGS("Avatar") << "av " << av_info << " joint " << getName() << " addAttachmentPosOverride for mesh " << mesh_id << " pos " << constrained_pos << LL_ENDL;
|
||||
}
|
||||
updatePos(av_info);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -294,7 +294,7 @@ void LLControlAvatar::updateDebugText()
|
|||
active_string.c_str(), (S32) isImpostor(), streaming_cost));
|
||||
addDebugText(llformat("types %s lods %s", type_string.c_str(), lod_string.c_str()));
|
||||
addDebugText(llformat("tris %d (est %.1f, streaming %.1f), verts %d", total_tris, est_tris, est_streaming_tris, total_verts));
|
||||
addDebugText(llformat("pxarea %s", LLStringOps::getReadableNumber(getPixelArea()).c_str()));
|
||||
addDebugText(llformat("pxarea %s rank %d", LLStringOps::getReadableNumber(getPixelArea()).c_str(), getVisibilityRank()));
|
||||
#if 0
|
||||
std::string region_name = "no region";
|
||||
if (mRootVolp->getRegion())
|
||||
|
|
|
|||
|
|
@ -747,6 +747,7 @@ private:
|
|||
public:
|
||||
BOOL isVisible() const;
|
||||
void setVisibilityRank(U32 rank);
|
||||
U32 getVisibilityRank() const { return mVisibilityRank; }
|
||||
static S32 sNumVisibleAvatars; // Number of instances of this class
|
||||
/** Appearance
|
||||
** **
|
||||
|
|
|
|||
|
|
@ -3932,6 +3932,10 @@ F32 LLVOVolume::getStreamingCost(S32* bytes, S32* visible_bytes, F32* unscaled_v
|
|||
{
|
||||
if (isAnimatedObject() && isRiggedMesh())
|
||||
{
|
||||
if (unscaled_value)
|
||||
{
|
||||
*unscaled_value = (linkset_base_cost + ANIMATED_OBJECT_COST_PER_KTRI * 0.001 * getEstTrianglesStreamingCost())/0.06;
|
||||
}
|
||||
return linkset_base_cost + ANIMATED_OBJECT_COST_PER_KTRI * 0.001 * getEstTrianglesStreamingCost();
|
||||
}
|
||||
else
|
||||
|
|
|
|||
Loading…
Reference in New Issue