On Wednesday, January 24th, 2018, the Firestorm team released Firestorm 220.127.116.11634. This is a significant update to the viewer, incorporating code updates from a number of recent viewer releases from Linden Lab, as well as some major updates from the Firestorm team and a number of important new features and updates, as well as a range of bugs fixes and improvements.
Given the extent of the updates in this release, and in keeping with my usual approach to Firestorm releases, what follows is not an in-depth review of everything new / updated in version 18.104.22.168579, but rather an overview, highlighting some of the more significant changes and updates I feel will be of most interest to users.
For full details of all changes, and all due credits to contributors, etc., please refer to the official release notes.
The Before We Begin
- There is no need to perform a clean install with this release if you do not wish to.
- Do, however, make sure you back-up all your settings safely so you can restore them after installing 5.0.11.
Major Lab Derived Updates
Firestorm 5.0.11 brings the viewer up to parity with the Lab’s 5.0.9 code base. It includes the following major updates from the Lab.
- Asset-HTTP Project: Firestorm now fetches the majority of inventory assets (landmarks, wearables – system layer clothing and body parts), sounds, gestures and animations) the same way as textures, mesh and avatar baking information: via the Content Delivery Network (CDN), rather than through the simulator. This should make loading of such content both faster and more reliable.
- 64-bit Havok sub-libraries: the 64-bit version of Firestorm now uses Havok physics with the mesh uploader , and can now visualise the pathfinding navmesh.
- Group ability Always Allow ‘Create Landmark’: this was accidentally removed from the viewer, and has now been returned. When enabled on a group role, it allows members of that role to override the teleport routing (e.g. right-click >teleport to) on the parcel if a landing point is set, as long as Direct Teleport is enabled on the region (BUG-100719).
- Incorporation of the Martini (November 2017), Moonshine (September 2017) and Margarita (August 2017) viewer updates.
Note: while Firestorm 22.214.171.124634 includes the 64-bit Havok sub-libraries for Second Life, it is not using Linden Lab’s Alex Ivy 64-bit code base. That will be for the next FS release.
Firestorm Updates and Additions
Viewer Performance: Mesh Rendering Information Features and Updates
Key among the updates to this release of Firestorm are new features and updates to a number of floaters intended to help users make better judgement calls on how content in Second Life might be affecting their viewer performance, and potentially make more informed choices about the goods they purchase in-world.
Build Floater – Physics View
Firestorm now includes an option to viewing the physics shape of objects you can edit. Among other things, this can help avoid having items you drag from inventory fail to appear in-world, with the message “Failed to place object at specified location. Please try again.” appearing in the top right corner of the viewer window.
The option is on the Features tab of the Build floater, and takes the form of an eye icon to the right of the Physics Shape drop-down.
- If displayed with a red line through it (default): show physics shape is disabled
- If shown without a red line through it: show physics shape is enabled.
When enabled, the selected object’s physical shape is shown in blue. Sometimes this will match the shape of the object itself (below left); other times, it may not (below right). Any attempt to rez another item on the part of the object covered by the blue will succeed; any attempt to rez on the part of an object not covered by the blue will likely result in the “Failure to place object” message.
Showing the physics shape of surfaces reveals why some may be walkable and why avatars may have problems with others – such as colliding with “something” while apparently not standing close to an object, or being unable to pass through a gap or open doorway.
- Show Physics Shape can also be accessed via the Build Menu > Options > Show Physics Shape When Editing.
- Once enabled, Show Physics Shape remains active until manually disabled, or until you log-out of Second Life (it will be automatically disabled on your next log-in).
- For more information on physics shapes, see:
Build Floater: Mesh Information
The Build floater also provides a range of new information specific to mesh objects and their level of detail (LOD). This can be seen on the Object tab of the floater when a mesh object is selected. For prim objects, the tab is unchanged and will display the “old” information (Path Cut, Hollow, Twist, Taper, etc.).
For a detailed examination of LOD please refer to For LOD’s sake stop! by Beq Janus. The following is intended to provide a brief overview of the mesh object information.
Mesh objects can comprise up to four different versions, as defined by the creator a very High detailed model, with a high count of triangles, displayed with the object is being viewed up close, and then up to three models with progressively less detail (fewer triangles), designed to be used the further away the camera is from the object (Medium, Low and Lowest). These are collectively referred to as level of detail models, and are designed to improve the rendering of scenes. In essence, the further away (or smaller) and object is, the less detail can be seen and so the less detailed versions can be under when rendering it, easing the overall rendering load.
The first two parts of the mesh information related to these models when a mesh object is selected:
- Mesh Information: lists the number of triangles used in each of the LOD models the creator has provided (note that if two ore more of the model types has the same triangle count, it indicates the same model is being used (so if Low and Lowest both show 3, or example, the same 3-triangle model is being used for both)
- Default Drop-down: allows you to preview each of the different LOD models for the object (make sure Default is selected after use).
The Object LOD behaviour section defines the distances from your camera at which the different LOD model will be swapped one for the next, as defined by the Linden Lab (LL) default LOD Factor (1.250), the Firestorm (FS) default LOD Factor (2.000) and your current LOD factor setting.
Why Is All This of Interest?
The idea behind these updates is to help users understand how some things in Second Life can impact your viewer performance. In this case: your LOD Factor setting.
Very simply put: some mesh content in Second Life is made with only two version: a very high detail model, and a very low detail model – and there can be valid reasons for this (e.g. furnishing and indoor objects which are never seen from more than a few metres away, and so their detailed version is rendered). However, it does mean objects can “collapse” very quickly with only minimal camming away from them.
To compensate for this, some content creators advise purchasers to increase their viewer’s LOD Factor to values such as 10, 12, 14 or more, using the RenderVolumeLODFactor Debug setting. However, LOD Factor is a global setting, affecting everything in your field of view not just the object in question. Therefore, increasing it just to see one object can actually force many of the objects you can see to render using their more detailed LOD models, whether or not they are actually needed. This increases the overall rendering load, reduces FPS, and generally pulls down your experience.
By providing this render information, Firestorm hope users will be able to make better judgement calls on their viewer settings to assist in better performance, and have a better understanding of “good” and “bad” content.
RenderVolumeLODFactor Behaviour Update
To further help with viewer performance, the behaviour of the RenderVolumeLODFactor Debug has been changed in Firestorm 126.96.36.199634. Any attempt to set the debug above 4.00 will result in a warning:
Note this does not present the debug from being set higher than 4.00, but do take note of the recommendations in the pop-up. Particularly the second item: any setting above 4.00 will only persist for the current log-in session. When you next log-in to Second Life, it will be reset to the Firestorm default of 2.00. A notification that a potential issue
Object Inspector Rendering Information
The display panels for both the object inspector or the avatar attachment inspector (right-click on an object / object attached to an avatar and select Object > Inspect from the Context menu, or More > More > Inspect in the pie menu) have been updated to show additional information:
Faces: Number of texture faces.
Vertices: Number of vertices that make up the object.
Triangles: Number of triangles that make up the object mesh.
TMem: Texture memory used by the object.
VRAM: Video RAM used by the object.
- Folder sub-folder and item count: left-clicking on a folder in Inventory (any panel or tab) will now display the total number of items in the folder, and the number of sub-folders it contains in the format (items / sub-folders). So, (212/53) indicates a folder has 212 items in 53 sub-folders.
- Deletion Warning Notification: a warning is now displayed when attempting to delete a folder which has contents hidden (e.g. because a search filter is active).
- Recent Tab > Show In Main View: right-click on an item in your Recent tab and select Show In Main View” to switch to the Inventory tab with the item highlighted (FIRE-14599).
- Inventory item count: now includes folders, as per a Linden Lab update.
- Chat Windows: reports of ignored conference chats in nearby chat now includes a URI link to the inviter when Automatically Ignore And Leave All Conference (Ad-Hoc) Chats and Report Ignored Conference Chats In Nearby Chat are both enabled.
- New command Lines (via chat): /zoffset_up: Offset your avatar upward by 0.05; /zoffset_down: Offset your avatar downward by 0.05.
General: new option to show/hide invitations to already joined groups.
- Log & Transcripts: Use Built-In Transcript Viewer should now be correctly disabled when unchecked.
2D Overlay > Remap shortcuts: remaps short cut already used by Linux (Ctrl-Alt-Fn) to use Ctrl-Shift instead (Linux Only) – FIRE-21625.
- Font: Celestia medium redux font added. This does not support bold or italics.
Move & View > View: Added option to disable visual hints when editing shape.
Other Updates of Note
- Reset Mesh LOD (experimental): if your mesh clothing fail to render correctly after camming and hitting ESC, this should correct the problem. Avatar Context menu: Reset Mesh LOD; pie menu: Appearance > Reset > Mesh LOD.
- Experimental fix for imposter avatar animations playing at the wrong speed.
- Hover Height: should no longer reset on login or teleporting under certain conditions (FIRE-21489).
- Area Search: search terms should no longer persist across instances (FIRE-21396).
- Snapshot updates:
- Grid Status: Help > Check Grid Status and Grid Status toolbar button now obeying the browser setting (FIRE-21236).
- Animation uploads: Frame loop slider can extend past 100 frames (FIRE-21330).
- Script Editor:
- Numbers in the script editor now using the correct transparency (FIRE-6955)
- script editor now actually uses Source Code Pro font
- Numbers in the script editor now using the correct transparency (FIRE-6955)
- Broken rigging to attachment points: the debug setting FSEnableRiggingToAttachmentSpots must be set to TRUE when uploading mesh rigged to attachment points (FIRE-21000).
Please refer to the release notes for the complete set of updates, fixes and contributions.
- Mesh Rendering – FSEnforceStrictObjectCheck:As a rule of thumb, mesh objects should never be uploaded to OpenSim using “Analyse”. With Firestorm 5.0.11, any mesh objects which are uploaded with Analyse will likely render as invisible if the Debug FSEnforceStrictObjectCheck is set to True. To avoid this, set FSEnforceStrictObjectCheck to FALSE.
- Gloebit currency support: see About Gloebit (FIRE-21587).
- More OpenSim OSSL functions added to the script library – see the release notes for a full list (FIRE-21301).
- Inventory should now load correctly on OpenSim (FIRE-21376).
- SL Grid Status tool should not longer be active on OpenSim.
Firestorm 188.8.131.5264 offers a lot of food for thought around LOD and mesh, and a good read of Beq’s blogs, as linked to in the text above is recommended.
Even though this version isn’t built using the Alex Ivy code, I have – in the 48 hours I’ve been using it – noted something of an uptick in frame rates and general performance, although texture rezzing in busy regions can still be a pain (which I put down to more local problems (I did not do a clean install) and possibly my CDN connection.