[Opensim-dev] Sim and Phys Frames per Second (FPS) Issues (UNCLASSIFIED)
Maxwell, Douglas CIV USARMY ARL (US)
douglas.maxwell3.civ at mail.mil
Wed Mar 4 14:53:55 UTC 2015
Classification: UNCLASSIFIED
Caveats: NONE
This is a great link, thank you for passing it along. I'll add it to my
tutorial toolbox for the interns. For those of you interested in another
HTML5 based system, the Virtual World Framework is also a simple design to
understand.
https://virtual.wf/
v/r -douglas
Douglas Maxwell, MSME
Science and Technology Manager
Virtual World Strategic Applications
U.S. Army Research Lab
Simulation & Training Technology Center (STTC)
(c) (407) 242-0209
-----Original Message-----
From: opensim-dev-bounces at opensimulator.org
[mailto:opensim-dev-bounces at opensimulator.org] On Behalf Of Diva Canto
Sent: Tuesday, March 03, 2015 9:55 AM
To: opensim-dev at opensimulator.org
Subject: Re: [Opensim-dev] Sim and Phys Frames per Second (FPS) Issues
Again, for people interested in learning more about these design issues, and
the tradeoffs of different choices, I highly recommend this tutorial and
associated code:
http://buildnewgames.com/real-time-multiplayer/
It's a wonderful little example that explains how interactive multi-user
client-server simulations work. 100x simpler than OpenSim, but essentially
the same concepts. It doesn't explain time dilation, but it's not hard to
see where that comes in: in varying the time window of the physics loop. The
update (simulation) loop is mainly about notifying clients about changes in
the state of the simulation. We want the physics simulation to be high
fidelity (meaning high loop rate), and the client updates to be as low as
possible (low update loop rate).
On 3/3/2015 2:09 AM, Tom Bess wrote:
Thanks. You have clarified much. I realised the rift is viewer
control but was not so clear about the impact/relationship between viewer
and server frame rates and the interpolation needed.
Thanks again.
Tom Willans BSc(Hons) MBCS CITP
Chartered IT Professional
Managing Director Bessacarr Publications Ltd
+44 (0)121 288 0281
email: tom.willans at bessacarr.com
skype: tom.willans
Second Life and OSGrid: Tom Tiros
Sent from my mobile
On 3 Mar 2015, at 09:08, Dahlia Trimble <dahliatrimble at gmail.com>
wrote:
If my memory is correct, SL sims run at a default of 45
frames/second. OpenSimulator runs at 11. I'm not certain exactly why 11 was
chosen but I do know that increasing it increases the amount of work the
simulator must do. E.g., if you go from 11 to 45 you quadruple the work the
simulator must do
The only signal I'm aware of that affects the viewer is
"time dilation". This value varies from 0.0 to 1.0 where 1.0 indicates the
simulator is running at full speed. If for some reason the physics engine
cannot keep up with the simulation it can signal the viewers to slow
movement. This value is sent with many UDP packets that are involved with
the scene and moving objects, so the viewers will know this value as timely
as possible.
Running the simulation at 11 fps shoudl *not* affect devices
such as the Rift as the camera is controlled entirely viewer side except
under special circumstances such as a user surrendering camera control to a
script. The viewer frame rate is *entirely independent* of the simulator
frame rate and will run as fast as the hardware allows if configured to do
so.
Choosing an appropriate simulation frame rate would involve
weighing the tradeoffs between simulation workload and responsiveness to
user controls such as those that control avatar position movement. Bear in
mind that there are also network delays involved; a simulation running at 11
frames/second will respond to a user control every 89 ms but there will also
be round-trip network delays which may typically be 100-200 ms but as high
as 1.5 seconds or more. Increashing the simulation frame rate will likely
not produce a perceivable difference in performance but will *significantly
reduce* the capacity of the simulator to do things like host more avatars
and scripted objects.
Also bear in mind that much of the code assumes 11
frames/second and raising that may create motion-related and other bugs that
may not be apparent until much later. OpenSimulator is tuned to function
properly at 11 frames/second.
To recap: the user camera is for the most part entirely
controlled within the viewer and is unaffected by simulation frame rate. As
such devices such as the Rift which manipulate the camera will not be
affected.
On Tue, Mar 3, 2015 at 12:09 AM, Tom Bess
<tom.willans at bessacarr.com> wrote:
I am reporting a comparison between sl and opensim
and did not realise this. Does sl run at a true 55fps? If so why bother?
Presumably the viewer needs 55fps sent to it to get its calculations correct
as at 11fps opensim does the same at sl albeit in larger steps.
Would a faster fps improve the accuracy of devices
such as the rift by having to interpolate over a shorter period of time?
Admittedly I suspect viewer rendering needs to be improved as well as this
aspect is holding my experience back.
I understand that other aspects may assume that
11fps is a fixed constant and not allow for this to change presumably that
can be changed but you guys know more here.
Thanks for the guide btw.
Tom Willans BSc(Hons) MBCS CITP
Chartered IT Professional
Managing Director Bessacarr Publications Ltd
+44 (0)121 288 0281
<tel:%2B44%20%280%29121%20288%200281>
email: tom.willans at bessacarr.com
skype: tom.willans
Second Life and OSGrid: Tom Tiros
Sent from my mobile
On 3 Mar 2015, at 05:18, Sean M
<mondesire.sean at gmail.com> wrote:
Thanks Justin, Dahlia, Michael, and
everyone. I now have a better understanding of the way FPS is calculated and
of the correction factor.
-Sean M.
On Monday, March 2, 2015, Justin Clark-Casey
<jjustincc at googlemail.com> wrote:
I think this has already been said
but just to summarize.
* The 11 fps are the number of scene
frames processed - opportunities where avatars may be notified about changes
in the scene.
* Each of these scene frames is
associated with a physics process where 5 physics frames are processed in
each frame. Hence 11 * 5 = 55 fps.
* Why this number? Others may know
better but my guess is that it's related to the frequency of updates
expected by the viewer. Teravus may well know more if he's still around.
* Changing
m_reportedFpsCorrectionFactor will do nothing except change the server FPS
stat.
* Changing MinFrameTime will change
the number of scene frames. From my work in the past, you would also need
to adjust other parameters like physics frames to stop things going haywire
(this was with ODE, Bullet might work differently). I expect you also
wouldn't gain much if anything in scene fidelity.
On 02/03/15 18:23, Sean M wrote:
Greetings,
We at the MOSES project have
noticed Simulation and Physics frames per second (FPS) have a few issues
that we are trying
to resolve. The issues are
producing suspicious performance statistics for the analysis of the current
version of
OpenSim that we are running.
First, there is a correction
factor (m_reportedFpsCorrectionFactor) that the raw SimFPS is multiplied by.
The comment in
the following line is a bit
curious because it indicates that the FPS is artificially inflated to "lie"
about the actual
FPS being so low:
OpenSim/Region/Framework/__Scenes/SimStatsReporter.cs: Line 317
// We're going to lie about
the FPS because we've been lying since 2008. The actual FPS is currently
// locked at a maximum of
11. Maybe at some point this can change so that we're not lying.
int reportedFPS =
(int)(m_fps * m_reportedFpsCorrectionFactor);
Also, lines 174 and 227
mention the use of this correction factor.
Second, this multiplier also
comes into play in the Scene where there is a MinFrameTime, which seems to
be the minimum
reported amount of time to
process a frame:
OpenSim/Region/Framework/__Scenes/Scene.cs:Line 723
Both of these variables, the
correction factor and MinFrameTime, are concerning from a statistics view
point as they are
generating skewed and
massaged numbers; therefore, I have a few questions:
1) Is it commonly known that
Sim and Phy FPSs are inflated to maintain the "lie"? And if so, will it be
corrected to be
an accurate reporting of
processed frames per second?
2) What exactly are the
definitions for OpenSim's Simulation (Sim) FPS, Physics (Phy) FPS and a
frame (I have found
conflicting and vague
definitions on the wiki)?
3) What are the known
performance consequences of setting the m_reportedFpsCorrectionFactor to 1
and MinFrameTime to 0?
Thanks,
Sean M.
_______________________________________________
Opensim-dev mailing list
Opensim-dev at opensimulator.org
http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev
--
Justin Clark-Casey (justincc)
OSVW Consulting
http://justincc.org
http://twitter.com/justincc
_______________________________________________
Opensim-dev mailing list
Opensim-dev at opensimulator.org
http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev
_______________________________________________
Opensim-dev mailing list
Opensim-dev at opensimulator.org
http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev
_______________________________________________
Opensim-dev mailing list
Opensim-dev at opensimulator.org
http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev
_______________________________________________
Opensim-dev mailing list
Opensim-dev at opensimulator.org
http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev
_______________________________________________
Opensim-dev mailing list
Opensim-dev at opensimulator.org
http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev
Classification: UNCLASSIFIED
Caveats: NONE
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 5629 bytes
Desc: not available
URL: <http://opensimulator.org/pipermail/opensim-dev/attachments/20150304/4a96937f/attachment.bin>
More information about the Opensim-dev
mailing list