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.
0.8-extended
Justin Clark-Casey (justincc) 2014-08-14 01:39:26 +01:00 committed by Justin Clark-Casey
parent 045e644824
commit 4ec5349192
2 changed files with 12 additions and 0 deletions

View File

@ -1034,6 +1034,9 @@ namespace OpenSim.Region.Framework.Scenes
ChildReprioritizationDistance ChildReprioritizationDistance
= interestConfig.GetDouble("ChildReprioritizationDistance", ChildReprioritizationDistance); = interestConfig.GetDouble("ChildReprioritizationDistance", ChildReprioritizationDistance);
RootTerseUpdatePeriod = interestConfig.GetInt("RootTerseUpdatePeriod", RootTerseUpdatePeriod);
ChildTerseUpdatePeriod = interestConfig.GetInt("ChildTerseUpdatePeriod", ChildTerseUpdatePeriod);
RootPositionUpdateTolerance RootPositionUpdateTolerance
= interestConfig.GetFloat("RootPositionUpdateTolerance", RootPositionUpdateTolerance); = interestConfig.GetFloat("RootPositionUpdateTolerance", RootPositionUpdateTolerance);
RootRotationUpdateTolerance RootRotationUpdateTolerance

View File

@ -1736,6 +1736,15 @@
ReprioritizationInterval = 2000.0 ReprioritizationInterval = 2000.0
RootReprioritizationDistance = 10.0 RootReprioritizationDistance = 10.0
ChildReprioritizationDistance = 20.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 ; Send an update to clients if the difference from the last sent avatar position is greater than this tolerance
RootPositionUpdateTolerance = 0.05 RootPositionUpdateTolerance = 0.05