SL projects update week 12 (2): server, interest list, region crossings, particles

Server Deployments – Week 12

The planned server deployed went ahead as scheduled and as follows:

  • Second Life Server (Main channel): on Tuesday 19th March, the SLS channel received the server maintenance package which had been re-deployed to Magnum in week 11. As with the Magnum re-deploy, it excludes the fix for VWR-786 while LL go “back to the drawing board” to try to correct issues. However, it does include the following two fixes:
    • BUG-1612: region Owners and estate managers finding they are unable to teleport back to their region after disabling direct teleports to the region
    • SVC-8019: region visibility delays following region restarts.
  • Release Candidate channels: on Wednesday 20th March, the three RC channels received the following updates:
  • BlueSteel and LeTigre: received the same updates as deployed to the SLS channel on Tuesday March 19th, but otherwise retain the same updates received in week 11 – release notes (BlueSteel)
  • Magnum: should receive further updates to Andrew Linden’s interest list work, as per the release notes.  Specific interest list bug fixes included with this update comprise:
    • Updates for objects that are out of view are delayed for a maximum of 5 seconds, at which point they will be sent (mitigates BUG-1779)
    • Fix for “No object updates from vehicles after some region crossings” (BUG-1814) – see below
    • Fix for “Agent appears in incorrect position to other agents after being moved by a sim teleporter” (BUG-1795).

Interest List Updates

Vehicle Crossings

The Magnum RC channel received a potential fix for the vehicle crossing issues (BUG-1814) which have been experienced by many of late, and which appears to have been a major step in the right direction, going on feedback posted to the deployment thread on the forums.

Essentially, the problem lay in the fact that the recently deployed interest list code has only been updating the viewer with information relating to objects within the camera’s field-of-view. If an object moves out of the field-of-view for more than a few seconds, then updates cease until such time as it re-enters the field-of-view.

Where this becomes a problem when crossing a region in a vehicle, is that when transferring between regions, the camera position is effectively extrapolated first, and any vehicle the avatar is attached to is created “behind” the camera by the simulator just entered. Thus, to the interest list code, the vehicle is “outside” the camera’s field-of-view, and so updates on it are no longer sent to the viewer, and problems result.

The updated interest list code deployed to Magnum ensures updates relating to any object an avatar is sitting on are always maintained (or “subscribed to”, to use the official term) by the interest list code, regardless as to where the vehicle appears to be relative to the camera position. Thus, updates continue either side of a region crossing, allowing control of the vehicle to be maintained.

I took time out to test the code fix, with the aid of Erick Gregan, on Thursday March 21st and we agreed that for aircraft at least, it looked good – neither of us encoutered problems.

Flying a Spitfire XI by Erick Gregan over the four Magnum Sandbox regions, I encountered no isues with sim crossings
Flying a Spitfire XI by Erick Gregan over the four Magnum Sandbox regions, I encountered no issues with sim crossings

Those wishing to test the updated code across region boundaries with aircraft or ground vehicles can do so by visiting the Four Magnum Sandbox regions (accessible to members of the Beta Tester SL group – which is free to join). The update itself will hopefully be deployed to the entire grid in the week 13 deployments.

Object Updates

The lack of updates being received from objects outside of the camera’s field-of-view have resulted in other issues as well, which are also fixed in the Magnum release.

For example, if you are looking at a cube which is changing colour between red and blue every few seconds, and turn your camera so that it is outside your field of view and wait for it to turn blue before camming back, the cube will briefly still appear to be red in your view before suddenly changing to blue. This is due to the fact that when the cube is outside your camera’s field of view, the updates associated with it are no longer sent to your viewer until such time as it re-enters your field of view.

With the updates deployed to Magnum, updates for objects outside your field of view are once again sent to the viewer – but at  a very low rate (around one update every 5 seconds). While this uses a little more bandwidth then sending no updates at all, it also means that objects in a state of change behave more predictably when camming away from and back to them (BUG-1779).

Cacheable Objects

The Magnum update also implements the first set of changes to the re-use of cacheable objects held by the viewer in order to speed up rezzing / rendering. These changes take two forms: a change in what can be cached in the viewer, and a change the order in which things are rendered.

Up until now, any object or item containing a script was considered non-cacheable by the viewer, whether or not the object itself has changed at all.  So if the object disappears (because you teleport away from the region, for example), then all data relating to that object is discarded by the viewer, and has to be re-obtained from the simulator on re-entering the region, which slows rendering.

With the new code, any object – including both those with scripts and physical objects – which hasn’t updated or moved in the past minute is considered cacheable by the viewer. This means more data can be locally cached and re-used, so if you teleport away from the region and back, for example, more information can potentially be drawn directly from the viewer’s cache, allowing the scene to be rendered somewhat faster.

Changes to the way in which in-world objects can be cached by the viewer should hopefully lead to improved rendering times
Changes to the way in which in-world objects can be cached by the viewer should hopefully lead to improved rendering times

Also with the Magnum change, objects are now loaded in order of decreasing “solid angle” – a measure of how “big” the object appears on your screen (which, According to Andrew Linden, can be thought of as the object’s bounding radius divided by its distance from the camera). So big and near objects will appear before small and distant objects.

Deployments for Week 13

The packages for deployment in week 13 (commencing Monday 25th March) have yet to be finalised, however, at least one of the RC releases will include a series of new LSL and particle updates.

The LSL updates cover two things:

  • changed() now triggers in child prims for CHANGED_REGION and CHANGED_TELEPORT, letting them know that they have been teleported; previously, only the changed event would only trigger in scripts in the root prim
  • New server-side Animation Override capabilities – which I have covered in a separate report.

New Particle System Parameters

The particle system will be gaining three new capabilities:

  • Glow
  • Ribbon effects
  • Blending options.

A ribbon effect is a particle which repeats the texture horizontally, and can follow the object creating them, which offers a lot of potential uses, although Maestro Linden did point out that the ribbon effect may not always be facing your camera (so there may be times when you need to reposition your camera in order to see the effect).

An example of the upcoming particle ribbon effect

However – while these capabilities are to be deployed to a Release Candidate channel in week 13, like materials processing, they will now be usable until such time as the viewer has been updated to render them.  Currently, and given the backlog of work sitting in the viewer queue, this is unlikely to be until after CHUI has reached a release status, and quite possibly not before Server-side baking is deployed.

8 thoughts on “SL projects update week 12 (2): server, interest list, region crossings, particles

  1. Until the roll out becomes available in all the grid, i will keep using a trick that is resulting effectively. As soon as the vehicle crosses a sim border and starts spinning in the air, right click on it, as it disappears, the avatar will stay alone in the air, use the shortcut left crtl + alt + s, to make the avatar sit down, and the camera will move to next sim, where the vehicle will be standing next to the avatar, only need to do is sit and ride it again, till next sim crossing where you will spin and you repeat the process.
    Since i and my love start using this, we where able to cross straight without a crash, all Corsica continent and Sansara one, more then 400 sims overall, as the right click reduces the spinning from at least 30 sec to a mere few and the camera is fixedas you sit down or stand up!
    Works for cars and or bikes,. we didnt tried the method for planes, to busy into warbugs, lol!

    Like

    1. Suggest you sign-up to the Beta test group and test on Magum or contact your vehicle creator to see if they have tested vehicles there to see if the fix corrects matters. All things being equal, the fix should be grid-wide in week 13.

      Like

  2. Being there , cant make any conclusion, 4 sims is not enough to test, but planes are not having camera issues at all.
    Bikes or cars, still have same issues as on mainland now and tehe proces to stop it is the same i use and posted above!
    So hopeful planes will be able to fly again soon!

    Like

    1. Erick Gregan and I tested his planes, which had issues prior to the fix, using the Magnum Sandboxes without issue (easy enough to fly in a broad circle around all four regions at varying speeds to repeatedly cross boundaries. Other have tested and found things work, with occasional upsets, in the air and on the ground. However, this is not to say everything is perfect. As shown in the video below, instances of loss of control can still occur when moving at very high speeds. That said, even the creator of the video says, “The recovery is amazing. evn tho I am lag popping all over the place. is way better the recovery part than even before the latest problem with the interest list.”

      I suggest that if you are experiencing specific issues with a tpye of vehicle still, you:

      • Contact the maker, if not yourself, and discuss the matter with them and see if they have encountered similar problems, and if they have tested their vehicles in the Magnum Sandbox region.
      • File a JIRA on your problems, stating the make(s) of vehicle, the tests you’ve run on the Magnum Sandbox regions, any response from the creator & quote BUG-1814
      • OR, if you don’t want to file a JIRA, provide details of the vehicle(s) and issues on the deployment thread where the crossing fix is discussed.

      Like

      1. i just comment about the vid if thats ok

        +

        the other cool thing on top of the recovery is that even while i was lag popping heaps. the board was going exactly where i was steering it. even when it dont look like it (:

        so when my viewer camera recover i was exactly where i should be. even when i was hitting the 4x intersection and doing double and triple sim crossings in very quick time. the board was sticking like glue to the sims the whole time. is a bit like freeboarding off the side of a mountain. vision not always the best. but you still know where you are and where you going. so just scrunch your eyes and go faster (:

        the lag popping is down to my internet connection. on a perfect internet connection then it would be pretty much seamless this solution fix camera wise

        the main thing that people will have to remember when this goes to RC is that if they still have troubles with their vehicles will be mostly bc of network connection problems. router delays. ISP. internet ping lag. sim servers lagging/disk thrashing. timeouts. etc. all the usuals that affect all things. not just vehicles

        +

        for scripters. is also still possible to break a scripted camera. same like always. but the new interest list code and this fix should reduce the chances of it happening. by reduce the window. but given enough goes/tries at it then it will happen sooner or later if not guarded for

        what happens is that for tiny microseconds on a sim handover the avatar/agent and the script vehicle/object can sometimes not be on the same sim when a script animation or camera setting changes. the script permissions cant find the agent/avatar in that tiny window. bang! broken

        they cross in separate threads is my understanding. so a race condition can occur. the script gets across first. or the agent sometimes first maybe. tiny window

        so vehicles scripters maybe need think about this a bit if their scripts still keep breaking script cameras after this fix goes to RC

        +

        ps. am only going to leave the vid on youtube for only a few more days. until RC release now most likely. seeing is how is now more than 1 person look at it (:

        i will take down bc is no need to keep up on youtube forever bc is only a response demo to a question. same the other 2 sl ride vids i made before last week. they was just response demos as well to questions now answered. when i do will break your comment i am reply to here. so sorry about that when it happens (:

        +
        pps. them ribbon particles are going to be way cool. brrrmmm! (:

        Like

Comments are closed.