From 4ec5349192fb94de16dee0b365835f9d54d9ec98 Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Thu, 14 Aug 2014 01:39:26 +0100 Subject: [PATCH] Make RootTerseUpdatePeriod and ChildTerseUpdatePeriod configurable in [InterestManagement] in OpenSim.ini for experimental purposes. If n > 1 for RootTerseUpdatePeriod only every n terse update is actually sent to observers on same region, unless velocity is effectively zero (to stop av drift). If n > 1 for ChildTerseUpdatePeriod only every n terse update is sent to observers in other regions, unless velocity is effectively zero. Defaults are same as before (all packets are sent). Tradeoff is reduction of UDP traffic vs fidelity of observed av mvmt. Increasing n > 1 leads to jerky observed mvmt immediateley for root, though not on child, where experimentally have gone to n = 4 before jerkiness is noticeable. --- OpenSim/Region/Framework/Scenes/Scene.cs | 3 +++ bin/OpenSimDefaults.ini | 9 +++++++++ 2 files changed, 12 insertions(+) diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index 276231287a..a43de2904d 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs @@ -1034,6 +1034,9 @@ namespace OpenSim.Region.Framework.Scenes ChildReprioritizationDistance = interestConfig.GetDouble("ChildReprioritizationDistance", ChildReprioritizationDistance); + RootTerseUpdatePeriod = interestConfig.GetInt("RootTerseUpdatePeriod", RootTerseUpdatePeriod); + ChildTerseUpdatePeriod = interestConfig.GetInt("ChildTerseUpdatePeriod", ChildTerseUpdatePeriod); + RootPositionUpdateTolerance = interestConfig.GetFloat("RootPositionUpdateTolerance", RootPositionUpdateTolerance); RootRotationUpdateTolerance diff --git a/bin/OpenSimDefaults.ini b/bin/OpenSimDefaults.ini index 3ee2004d3c..51522b8b33 100644 --- a/bin/OpenSimDefaults.ini +++ b/bin/OpenSimDefaults.ini @@ -1736,6 +1736,15 @@ ReprioritizationInterval = 2000.0 RootReprioritizationDistance = 10.0 ChildReprioritizationDistance = 20.0 + + ; If n > 1, only every n UDP terse updates will be sent to observers of an avatar that are in the same region + ; Updates will always be sent to the avatar that the update addresses and if av velocity is effectively zero (to prevent drift due to missing updates). + ; n > 1 will reduce UDP traffic but will lead to laggier movement observed in other avatars. + RootTerseUpdatePeriod = 0 + + ; If n > 1, only every n UDP terse updates will be sent to observers of an avatar that are in another region + ; n > 1 will reduce UDP traffic but may lead to laggier movement observed in other avatars, though values up to 4 may not generate a noticeable effect. + ChildTerseUpdatePeriod = 0 ; Send an update to clients if the difference from the last sent avatar position is greater than this tolerance RootPositionUpdateTolerance = 0.05