| Anonymous | Login | Signup for a new account | 2013-05-22 20:28 UTC | ![]() |
| Main | My View | View Issues | Change Log | Roadmap | Summary | My Account |
| View Issue Details [ Jump to Notes ] | [ Issue History ] [ Print ] | ||||||||
| ID | Project | Category | View Status | Date Submitted | Last Update | ||||
| 0003019 | opensim | [REGION] OpenSim Core | public | 2009-01-20 03:34 | 2012-05-06 14:32 | ||||
| Reporter | Diva | ||||||||
| Assigned To | Diva | ||||||||
| Priority | normal | Severity | minor | Reproducibility | always | ||||
| Status | resolved | Resolution | fixed | ||||||
| Platform | OS | OS Version | |||||||
| Product Version | |||||||||
| Target Version | Fixed in Version | ||||||||
| Summary | 0003019: SOG Updates | ||||||||
| Description | I have this fast moving traffic simulation that I did using region modules. I hadn't updated it since October, but now I had some time to do it. I'm hoping I can open this demo up for the 2nd bthday celebration. The major change in the API was having to explicitly call SOG update in some form; I chose SendFullUpdate. The thing I noticed was an enormous slow down of the movement of the vehicles, to the point that the demo was useless. | ||||||||
| Additional Information | Digging a little deeper, I took a look at the several SOG update methods. They all follow the same pattern: send update of the root part, then all the parts: /// <summary> /// Immediately send a full update for this scene object. /// </summary> public void SendGroupFullUpdate() { if (IsDeleted) return; RootPart.SendFullUpdateToAllClients(); lock (m_parts) { foreach (SceneObjectPart part in m_parts.Values) { if (part != RootPart) part.SendFullUpdateToAllClients(); } } } I removed the update of the parts: /// <summary> /// Immediately send a full update for this scene object. /// </summary> public void SendGroupFullUpdate() { if (IsDeleted) return; RootPart.SendFullUpdateToAllClients(); } As I suspected, everything works fine, and my vehicles are moving again at a decent speed. (Each vehicle is 0000052:0000030 parts...) I understand sometimes we need to send a *full* update, because many parts may have changed? Maybe? But in my case (which I suspect is very common) only the group properties are changing (position, rotation, etc), the parts are not. The client is happy to receive only the info pertaining to the root part; it knows what to do with the rest. At the very least there should be another update method that sends only the update of the root part, no? | ||||||||
| Tags | No tags attached. | ||||||||
| Git Revision or version number | |||||||||
| Run Mode | Standalone (Multiple Regions) , Grid (Multiple Regions per Sim) | ||||||||
| Physics Engine | ODE | ||||||||
| Environment | Mono / Linux32, .NET / Windows32 | ||||||||
| Mono Version | |||||||||
| Viewer | |||||||||
| Attached Files | |||||||||
Relationships |
||||||
|
||||||
Notes |
|
|
(0008885) melanie (administrator) 2009-01-20 04:22 |
+1. Movement/rotation update is the most common case of root part only changing. The updating via script llSetPos and llSetRot should limit it to sending the root part. The code you showed comes froma time when this may not have been well known. |
|
(0009070) svn (developer) 2009-01-30 23:23 |
diva committed related code in r8187 Added a new method SendGroupRootUpdate to start addressing mantis 0003019. ll functions have not been changed. see more at - http://opensimulator.org/cgi-bin/viewvc.cgi?view=rev&revision=8187 [^] |
|
(0009074) Diva (administrator) 2009-01-31 00:31 |
Leaving this here for now, until some ll functions use this new method. |
|
(0018984) makopoppo (manager) 2011-07-19 14:44 |
I remember there is a function which updates partly, and is used from several ll function in current codebase... but not sure... |
|
(0021212) Diva (administrator) 2012-04-09 01:00 |
This is sooo resolved. |
Issue History |
|||
| Date Modified | Username | Field | Change |
| 2009-01-20 03:34 | Diva | New Issue | |
| 2009-01-20 03:34 | Diva | SVN Revision | => 8080 |
| 2009-01-20 03:34 | Diva | Run Mode | => Standalone (Multiple Regions) , Grid (Multiple Regions per Sim) |
| 2009-01-20 03:34 | Diva | Physics Engine | => ODE |
| 2009-01-20 03:34 | Diva | Environment | => Mono / Linux32, .NET / Windows32 |
| 2009-01-20 03:34 | Diva | Mono Version | => 2.0.1 |
| 2009-01-20 04:22 | melanie | Note Added: 0008885 | |
| 2009-01-30 23:23 | svn | Checkin | |
| 2009-01-30 23:23 | svn | Note Added: 0009070 | |
| 2009-01-31 00:31 | Diva | Note Added: 0009074 | |
| 2009-01-31 00:31 | Diva | Status | new => acknowledged |
| 2011-07-19 14:44 | makopoppo | Note Added: 0018984 | |
| 2012-04-09 01:00 | Diva | Mono Version | 2.0.1 => |
| 2012-04-09 01:00 | Diva | Note Added: 0021212 | |
| 2012-04-09 01:00 | Diva | Status | acknowledged => resolved |
| 2012-04-09 01:00 | Diva | Resolution | open => fixed |
| 2012-04-09 01:00 | Diva | Assigned To | => Diva |
| 2012-05-06 14:32 | Stefan_Boom | Relationship added | related to 0006009 |
| Copyright © 2000 - 2012 MantisBT Group |