From ba5f6fdfad4a78e549303b8300ebfafabaec8412 Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Wed, 6 Aug 2014 00:53:14 +0100 Subject: [PATCH] Add RootPositionUpdateTolerance, RootRotationUpdateTolerance, and RootVelocityUpdateTolerance parameters to [InterestManagement] in OpenSimDefaults.ini These govern when AgentUpdates are sent to observers on position, rotation and velocity changes to an avatar (including the avatar themselves). Higher values reduce AgentUpdate traffic but at a certain level will degrade smoothness of avatar and perceived avatar movement. --- OpenSim/Region/Framework/Scenes/Scene.cs | 7 +++++++ bin/OpenSimDefaults.ini | 24 ++++++++++++++++-------- 2 files changed, 23 insertions(+), 8 deletions(-) diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index b979787e9f..082eea5812 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs @@ -1035,6 +1035,13 @@ namespace OpenSim.Region.Framework.Scenes m_rootReprioritizationDistance = interestConfig.GetDouble("RootReprioritizationDistance", 10.0); ChildReprioritizationDistance = interestConfig.GetDouble("ChildReprioritizationDistance", ChildReprioritizationDistance); + + RootPositionUpdateTolerance + = interestConfig.GetFloat("RootPositionUpdateTolerance", RootPositionUpdateTolerance); + RootRotationUpdateTolerance + = interestConfig.GetFloat("RootRotationUpdateTolerance", RootRotationUpdateTolerance); + RootVelocityUpdateTolerance + = interestConfig.GetFloat("RootVelocityUpdateTolerance", RootVelocityUpdateTolerance); } m_log.DebugFormat("[SCENE]: Using the {0} prioritization scheme", m_priorityScheme); diff --git a/bin/OpenSimDefaults.ini b/bin/OpenSimDefaults.ini index 180d1f3b53..3ddf91afbe 100644 --- a/bin/OpenSimDefaults.ini +++ b/bin/OpenSimDefaults.ini @@ -1728,15 +1728,23 @@ [InterestManagement] - ; This section controls how state updates are prioritized for each client - ; Valid values are BestAvatarResponsiveness, Time, Distance, - ; SimpleAngularDistance, and FrontBack - UpdatePrioritizationScheme = BestAvatarResponsiveness - ReprioritizationEnabled = true - ReprioritizationInterval = 2000.0 - RootReprioritizationDistance = 10.0 - ChildReprioritizationDistance = 20.0 + ; This section controls how state updates are prioritized for each client + ; Valid values are BestAvatarResponsiveness, Time, Distance, + ; SimpleAngularDistance, and FrontBack + UpdatePrioritizationScheme = BestAvatarResponsiveness + ReprioritizationEnabled = true + ReprioritizationInterval = 2000.0 + RootReprioritizationDistance = 10.0 + ChildReprioritizationDistance = 20.0 + + ; Send an update to clients if the difference from the last sent avatar position is greater than this tolerance + RootPositionUpdateTolerance = 0.05 + ; Send an update to clients if the euclidian difference from the last sent avatar rotation is greater than this tolerance + RootRotationUpdateTolerance = 0.01 + + ; Send an update to clients if the difference from the last sent avatar velocity is greater than this tolerance + RootVelocityUpdateTolerance = 0.001 [Monitoring] ; Enable region monitoring