[Opensim-dev] Fancy a smoothie (ish)?
Justin Clark-Casey
jjustincc at googlemail.com
Thu Oct 13 23:37:54 UTC 2011
Hi folks. I've had reason recently to investigate why flying across a region can feel quite jerky.
It seems that one solution is to increase the number of ImprovedTerseObjectUpdate packets that OpenSim sends out when
the avatar is moved. I'm assuming that more packets means smaller and more frequent corrections of avatar position
extrapolation by the viewer.
At the moment, we only send out 11 ish packets per second. Increasing this to 22 makes avatar flying much smoother
subjectively.
You can do this via a new set of config parameters added to the bottom of the [Startup] config section of
OpenSimDefaults.ini on commit 4e7d433.
In OpenSimDefaults.ini you can see the lines (minus comments)
MinFrameTime = 0.089
UpdateObjectsEveryNFrames = 1;
UpdateAgentsEveryNFrames = 1;
UpdateEntityMovementEveryNFrames = 1;
UpdateCoarseLocationsEveryNFrames = 50;
UpdatePhysicsEveryNFrames = 1;
UpdateTempCleaningEveryNFrames = 1000;
UpdateEventsEveryNFrames = 1;
UpdateTerrainEveryNFrames = 50;
UpdateStorageEveryNFrames = 200;
At the moment we need to halve MinFrameTime and double all the Update* params except UpdateAgentsEveryNFrames. You can
do this by overriding the defaults with the following parameters at the bottom of the [Startup] section of OpenSim.ini.
MinFrameTime = 0.0445
UpdateObjectsEveryNFrames = 2;
UpdateAgentsEveryNFrames = 1;
UpdateEntityMovementEveryNFrames = 2;
UpdateCoarseLocationsEveryNFrames = 100;
UpdatePhysicsEveryNFrames = 2;
UpdateTempCleaningEveryNFrames = 2000;
UpdateEventsEveryNFrames = 2;
UpdateTerrainEveryNFrames = 100;
UpdateStorageEveryNFrames = 400;
My subjective experience is that horizontal avatar flying feels much smoother on my local standalone and on a remote
system. However, this is only the case once everything has finished loading and if you aren't being spammed by spurious
ObjectUpdates from prims, as discussed very recently in this list. You can prevent spamming by making sure your client
bandwidth is suitable for your connection quality or by setting enable_adaptive_throttles = true in [ClientStack.LindenUDP].
I've no idea how this will perform on a more heavily loaded sim, particularly as we're currently achieving this change
by halving the time that physics has to update and avatar location is updating twice for every physics update. But if
you try this I'd be interested in any feedback.
Also, please feel free to tweak the settings in other ways but we cannot provide any support.
--
Justin Clark-Casey (justincc)
http://justincc.org/blog
http://twitter.com/justincc
More information about the Opensim-dev
mailing list