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:
- 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
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.
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.
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).
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.
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:
- 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).
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.