Looking at the SL Performance Improvements Viewer

via Linden Lab

The Performance Improvements Viewer has been the default release viewer from the Lab for the last couple of weeks, and the code is starting to find its way to TPVs. This is a viewer specifically designed by LL to provide a smoother user experience in terms of things like rezzing / rendering times, better FPS.

The viewer represents a lot of work on the part of the Graphics team to improve data handling (including moving various data elements between threads, removing low update processes to their own threads rather than having them stall the main rendering threads, etc., all of which is intended to make the viewer feed more responsive as you move / teleport around SL.

As such, I decided to try a series of basic comparative tests between the Performance Improvements viewer, a version of the official viewer without the code updates and Firestorm (as my TPV of choice at the moment), just to gain a rough indication of how the changes made to the viewer perform. These tests comprised:

  1. Logging-in to my Home location with empty caches, recording the time from clicking the log-in button through to everything loading in my field of view.
  2. Logging-in to my Home location with it locally cached on my hard drive.
  3. Completing a walk around my Home location, recording FPS at the same 9 locations, three times each with Shadows OFF and Shadows ON, and taking an average of all the FPS times recorded.
  4. Teleporting to a busy region (15+ avatars) that is not pre-cached locally (but should be cached at my nearest CDN node(s), given it is a place I visit daily).
  5. Re-teleporting to the same location, now locally cached.
  6. Completing the same walk around the selected location, recording FPS at the same 5 locations, three times each with Shadows OFF and Shadows ON, and taking an average of all the FPS times recorded.

The table below summarises my findings:

Firestorm SL Viewer Performance Improvements Viewer
Home log-in uncached 42.06 sec 27.94 sec 24.00 sec
Home log-in cached 22.34 sec 21.98 sec 20.00 sec
Home walk – no shadows 25.5 FPS 34.5 FPS 53.57 FPS
Home walk – shadows 17.4 FPS 21.4 FPS 42.8 FPS
Uncached location TP 55:41 sec 49.37 sec 44.27 sec
Cached location TP 46:61 sec 35.03 sec 17.57 sec
TP location – no shadows 28.9 FPS 29.25 FPS 45.54 FPS
TP location – shadows 13.5 FPS 22.8 FPS 38.8 FPS

Obviously, there is always going to be a lot of subjectivity in such tests like these, which are dependent upon factors such as the specs of the system running the viewer(s), what else is running at the same time, Internet connectivity with the SL services and to the nearest CDN node, etc. However, in carrying out the comparisons above, I attempted to achieve something of a common basis by:

  • Using the same settings across the three viewers (e.g. camera and graphics pre-sets; the same RenderVolumeLOD factor; the same attached EEP settings for a consistent environment; the same complexity setting & max no. of non-imposters, etc.) – with the acknowledged caveat that the Performance Improvements viewer would automatically default to Shadows ON for me, based on my system’s capabilities, so needed some adjustment during some tests.
  • Ensuring all tests were carried out back-to-back to minimise extensive changes due to avatars of different complexity coming  / going / moving around.
  • Closing all other apps I had been running on my PC to maximise the available resources available to all of the tests.

In addition, and for completeness (and as requested by Lance in the comments) – here are my system specifications – which are also available in the link on the right column of this blog.

But even while subjective, I think the results tend to speak for themselves, and there is no denying the qualitative frame speed increase with the Performance Improvements viewer, particularly with shadows enabled.

How quickly these updates are adopted by TPVs is down to their release schedules; but for the official viewer, this marks the first major release of updates intended to improve performance that is currently in flight, with the Performance Improvements Floater viewer (which includes the Lab’s take on auto-FPS function functionality similar to that found in Firestorm) currently at product viewer status.

The Performance Improvements viewer can be downloaded via the Viewer Download page, and the release notes are here.

Embedding Second Life 360 images directly into WordPress

via Linden Lab

I recently covered the promotion of the Second Life 360º Capture viewer to de facto release status (see: 360º Capture viewer now de facto SL release viewer), in which I referenced uploading images to platforms such as Flickr. Since that article, I’ve received questions on embedding images from the viewer into blogging platforms such as WordPress or viewing.

While I cannot speak to other platforms, it is possible to directly display 360º images (including those produced via the Second Life viewer and TPVs) directly into WordPress posts / pages. There are actually two ways of doing so:

  • If you are using Automattic’s own platform / hosting via WordPress.com, you can use dedicated shortcode created by Automattic.
  • If you are self-hosting and using WordPress.org, you can either use a dedicated WordPress.org plug-in such as Algori 360 Image, or try the shortcode option (which I believe should work, although I cannot verify, being a WordPress.com user).

For the purposes of this article, I’ll be covering the use of Automattic’s shortcode option. The key points of this approach are:

  • It works with both of the WordPress editors, Classic and Guttenberg (the “block” editor).
  • It supports any suitable 360º image with a .jpg file extension (not just those created with the SL viewer, although the notes below assume you are using the 360º viewer to initially create your 360º image(s).
  • It allows images to be viewed when embedded in a post / page, and has an option to display them in a full-screen mode and returning you to the post / page in which they appear when done.
  • As it works with URLs, it can be used to display 360º images you have uploaded to other platforms, such as Flickr (which I’ve also covered below).
  • It defaults all images to a single image size rather than a more usual equirectangular aspect ratio (2:1), which can look overly large within a post or page, depending on the theme you are using, as per the example below:

Embedding a 360º Image Uploaded to WordPress via the Classic Editor

  1. Use the 360º viewer to take your image.
  2. Upload the image to your WordPress Media Library.
  3. Edit the image via your Media Library, and copy the URL as it is given.
The image URL can be found in the image editor Attachment floater (WordPress Classic dashboard version shown). Manually highlight and clip it to your clipboard or use the Copy URL to Clipboard button. Click for full size, if required.
  1. Edit the post in which you wish to embed the 360º image and position the cursor when you wish the image to appear.
  2. Switch to the Text view (click the tab at the top right of the WordPress text editor), and enter the following shortcode:

Where “path-to-photo” is the 360º image URL.

  1. Switch back to Visual (click the tab at the top right of the WordPress text editor), the shortcode should appear as you’ve typed it.
  2. Go to Checking Your Results, below.

Embedding a 360º Image Uploaded to WordPress via the Guttenberg Editor

  1. Use the 360º viewer to take your image.
  2. Upload the image to your WordPress Media Library.
  3. Edit the image via your Media Library, and copy the URL as it is given.
  4. Create a Shortcode block, and within it type:

Where “path-to-photo” is the 360º image URL.

Checking Your Results

Once you have created the 360º image shortcode:

  • Use the WordPress Preview option to check the layout of your post / page and that the image is properly displayed.
  • Use the Full Screen toggle option in the bottom right corner of the image to expand it to a full screen view and then click the icon again to return to the post / page view.
  • If you see a message similar to “Enter valid URL” or “failed to load the VR scene”, check to made sure you have added the shortcode and / or image URL correctly.

Embedding a 360 image uploaded to Flickr

As noted above, you can also use the WordPress shortcode option to display360º images you’ve uploaded to Flickr directly into your WordPress posts / pages, where they will play when clicked. Here’s how:

  1. Upload a 360º image you’ve captured to your Flickr photo stream.
  2. Click on the image in Flickr to display it.
  3. Click the Share Photo arrow icon at the bottom right of the screen.
  4. This will open a floater with a series of share options. Click on BBCode.
  5. The floater will display URL information. click on the information to highlight it, then paste it into a suitable editor. It will look like the example below.
Flickr image BBCode – note the element highlighted in yellow
  1. Trim the URL to just leave the part highlighted in yellow that starts with “https://live.static” and ends with “jpg”.
  2. Follow the instructions above to create the 360º image shortcode using either the Classic or Guttenberg editor, replacing “path to photo” with the Flickr image URL from the BBCode.

The image below is an example of a 360º image uploaded to Flickr and embedded into this page using the above method, and which can also be seen here.

And that’s it! For any additional information, see: Embedding 360° Photos and Virtual Reality (VR) Content via WordPress.

360 Capture viewer now de facto SL release viewer

via Linden Lab

Note: for those wishing to know how to embed 360º snaps taken with this viewer / capability into WordPress posts and pages, please refer to Embedding Second Life 360 images directly into WordPress.

On Wednesday, December 15th, Linden Lab issued the Cache +360º viewer as the de facto official viewer release, marking the last viewer promotion for 2021.

As the second part of its name suggests, this viewer is designed to capture and produce 360º degree panoramic still images of the location / environment around your avatar / camera position (if freecamming) in a format that makes them suitable for viewing through platform supporting 360º panoramic images (including Flickr). It does this by simultaneously taking six images around the current camera position – one each at the four cardinal points, plus one directly overhead, and one directly looking down, all of which are then “stitched” into an equirectangular projection image.

The first iteration of 360º photo capability first appeared in the official viewer in October 2016, and came with a certain amount of complexity involved. Later iterations of the viewer improved on this, but the viewer continued to be hit by conflicts with the Interest List, and these and other issues forced work on the capability to be pushed into the background.

However, work resumed earlier this year, and as I reported at the time, an updated project viewer was issued in September 2021 (see Lab Issues Updated Projected 360 Capture Viewer). This release represents the latest iteration of that version whilst also being combined with the former Simplified Cache RC viewer, of which more below.

The 360º capture capability is utilised via a dedicated floater which can be accessed via the World menu and / or a dedicated toolbar button and / or a link in the original snapshot viewer and / or by pressing CTRL-ALT-SHIFT-S

Accessing the 360º snapshot floater (this can also be done via CTRL-ALT-SHIFT-S or by expanding the standard snapshot floater to show the full preview and clicking the Take 360º snapshot link in the lower right corner of the preview panel

Actually taking an image comprises a few simple steps:

  1. Position your camera.
  2. Select the image quality – for finished images you’ll need to set High or Maximum quality using the radio buttons.
  3. Click the Create 360º Image button to generate a preview in the floater’s preview panel.
  4. Click on the preview image and drag it around to ensure what you’re seeing is what you want / that things like textures have actually rendered correctly.
  5. Check the Hide All Avatars option, if required – this will cause the process to include all avatars present (it will not alter their in-world rendering).
  6. When you are satisfied with the preview, click Save As… to save it to your hard drive, renaming it if / as required.

Just remember that if you change the image quality, you must also click Create 360 button to update the preview AND image capture process to the new image quality, before click Save As… again.

Note that the required metadata to have image correctly show in Flickr and FB / Meta (and others) is included in the image – so if you save it to disk and upload it, it should render correctly, as per the image below).

An “unwrapped” Maximum quality 360º image captured using the Project 360 Capture viewer, showing the 6 captured images “stitched” together (click on this image to see it in 360º format in Flickr)
This viewer also included updated code for the viewer’s cache. This code is an update to the Simple Cache viewer originally issued in March 2021, but which to be rolled back after it was found to have a number of significant bugs, such as BUG-230337 “Simplified cache viewer is ignoring cache path” and BUG-230295 “Cannot upload images on the Simplified Cache Viewer”.

In particular the code replaces the VFS cache system used to save local copies of frequently used assets such as meshes, sounds and animations with a simplified cache, and should make loading / reuse of these assets smoother.

Given the level of interest that has been shown in the 360º Capture viewer, this code will hopefully find its way into TPVs in relatively short order, holiday period allowing. In the meantime, the official can be obtain through the official viewer download page.

Lab issues updated Project 360 Capture viewer

via Linden Lab

On Friday, September 3rd Linden Lab issued the latest update to the 360º Snapshot viewer – now called the Project 360 Capture viewer – with the release of version 6.4.23.563579. It represents the most significant update to this viewer we’ve seen, and it comes after a significant pause in its development.

As the name of the viewer suggests, it is designed to take 360º degree panoramic images of the environment around the camera. It does this by simultaneously taking six images around the current camera position – one each at the four cardinal points, plus one directly overhead, and one directly looking down. These are then “stitched” into an equirectangular projection image (e.g. one that can be projected as a sphere), which can then viewed through a suitable medium – such as Flickr (other mediums are available!).

An “unwrapped” Maximum quality 360º image captured using the Project 360 Capture viewer, showing the 6 captured images “stitched” together (click on this image to see it in 360º format in Flickr)

The first iteration of this viewer appeared almost five years ago, in October 2016, and came with a certain amount of complexity involved – including the need to install a local environment for previewing captured images. Later iterations of the viewer improved on this, but the viewer continued to be hit by conflicts with the Interest List.

In simple terms, the Interest List lightens the load – objects, textures and updates to active objects, etc., – the viewer has to process when rendering. It does this by ignoring things that are not in the camera’s direct field of view. This is why, for example, when you turn your camera away from the direction you are looking, it can take time for objects and their textures to render. However, for a 360º-degree image, everything needs to be properly rendered in the viewer – whether in the current field of view or not. Overcoming this problem has proven difficult – and it (admittedly with other factors also coming into play) caused work on the viewer to be halted for an extended period.

This version of the viewer overcomes most of these issues, and makes the creation of 360º snapshots straightforward through the use of a new 360 Snapshot floater that is independent of the “standard” snapshot floater, and the use of some additional back-end code to overcome the Interest List. This new floater can be accessed from within the Project 360 Capture viewer in one of four ways:

  • Via World 360 Snapshot.
  • By pressing CTRL-ALT-SHIFT-S.
  • By enabling the 360° snapshot toolbar button in one of the toolbar areas.
  • By expanding the standard snapshot floater to show the full preview and clicking the Take 360 Snapshot link in the lower right corner of the preview panel.
Accessing the 360 snapshot floater (this can also be done via CTRL-ALT-SHIFT-S or by expanding the standard snapshot floater to show the full preview and clicking the Take 360 snapshot link in the lower right corner of the preview panel

The floater itself comprises several elements:

  • The image Quality radio buttons and selection button (labelled Create 360 Image).
    • The quality buttons appear to utilise the viewer’s screen buffer to render the different image types, so Preview appears to use the 128 vertical buffer, while Medium and High use the 512 and 1024 buffers respectively, and Maximum the 2048 buffer (i.e. the full 4096×2048 resolution).
    • When you have selected your preferred quality, click the Create 360 button to generate a preview.
    • If you alter the image quality at any time, you’ll need to click on the Create 360 button again to update the preview / take a fresh image at the new image quality.
  • A checkbox to disable avatar rendering during the image capture process.
  • The preview panel. This will show a rotating image from the current camera position until refreshed, and this image can be manually rotated / panned up and down by clicking on it and dragging the mouse around.
  • The Save As… button that actually saves the image to your hard drive.

To take an image:

  1. Position your camera.
  2. Select the image quality – for finished images you’ll need to set High or Maximum quality using the radio buttons.
  3. Click the Create 360 Image button to generate a preview in the floater’s preview panel.
  4. Click on the preview image and drag it around to ensure what you’re seeing is what you want / that things like textures have actually rendered correctly.
  5. Check the Hide All Avatars option, if required – this will cause the process to include all avatars present (it will not alter their in-world rendering).
  6. When you are satisfied with the preview, click Save As… to save it to your hard drive, renaming it if / as required.

Remember, if you change the image quality, you must also click Create 360 button to update the preview AND image capture process to the new image quality, before click Save As… again.

Once captured – again as noted – images can be uploaded to a suitable display platform such as Flickr – the images contain the necessary metadata that should automatically trigger the 360-degree viewing process (just click on an image in flicker to manually pan around up / down).

An “unwrapped” Maximum quality 360º image captured using the Project 360 Capture viewer, showing the 6 captured images “stitched” together (click on this image to see it in 360º format in Flickr)

General Observations

  • An easy-to-use iteration of the 360º snapshot viewer that brings good quality and ease-of-use to the process.
  • The ability to avoid rendering avatars not only helps avoid issues of rendering / motion blurring when taking a 360º image, it enables the easy capture of landscape images. It also, obviously, allows for the capture of posed avatars if required.
  • There are still some issues in rendering out-of-view (relative to the visible field of view for the camera) items and textures at High and (particularly) Maximum quality images – note the blurring of the vessel name in the first 360 image above.
  • The lowest quality Preview option is simply too blurred to be of real value – perhaps using 256 rather than 128 might improve this (if only slightly)?

Viewer Links

Lab issues Performance Floater viewer for feedback

via Linden Lab

Among their stated goals, Linden Lab is working to improve the user experience with Second Life with a number of projects. One of these is in making the viewer UI and viewer controls more accessible, and as a part of this work, the Performance Floater viewer (version 6.4.23.562625 at the time of writing) was issued as a project viewer with the intention of gaining feedback from users on the changes / options it incorporates and how they are presented.

As the name implies, the Performance Viewer is focused on bringing together various options and controls than can help improve viewer performance, and presenting them through a single new floater called (in difference to the viewer’s name) the Improve Graphics Speed floater.

This new floater can be accessed in one of two ways: via World menu → Improve Graphics Speed or by enabling the Graphics Speed button within a toolbar area. It comprises four button options, together with the viewer’s current FPS provided in large, friendly numbers at the top of the floater.

The Performance / Graphics Speed floater and accessing it

The four buttons open dedicated panels within the floater, each focused on a specific group of settings:

  • Graphics Settings: pulling together the most commonly-used Graphics options from Preferences → Graphics and the Advanced Graphics Preferences floater:
    • Quality and Speed.
    • Draw Distance.
    • Toggles for enabling / Disabling atmospheric shaders and Advanced Lighting Model, together with a drop-down for setting Shadows.
    • A toggle for disabling / enabling water transparency and a drop-down for setting the quality of water reflections.
    • A “Photography” option that most of us will recognise as being the RenderVolumeLODFactor debug setting.
    • A button to open the Advanced Graphics Preferences floater, should further adjustments be required.
  • Avatars Nearby: a set of options related to rendering the avatars around you or in general:
    • The Maximum Complexity slider (from Advanced Graphics Preferences), with the value rounded down to the nearest whole thousand.
    • The option to Always Render Friends (from Preferences → Graphics).
    • A new checkbox for de-rendering all avatars in a scene (toggles Advanced → Rendering Types → Avatars (CTRL-ALT-SHIFT-4) off / on).
    • The radio buttons for showing / hiding avatar name tags (from Preferences → General).
    • A list of nearby avatars, with indicators giving their rendering complexity, colour-coded to denote fiends.
      • Running the mouse over a name in the list will highlight it, and offer an Information icon to open their profile.
      • Right-clicking on a name will bring up options to render them fully or as a “jellydoll” (neutral grey avatar) or remove them from your Exceptions list (exceptions being those set to never / always render, no matter what your Maximum complexity setting).
    • A button directly under the avatar list to open your Exceptions list, where you can again right-click on names and alter their render behaviour.
  • Your Avatar Complexity: a list of worn attachments on your avatar with a guidance on their relative rendering cost, and an option to right-click and on any of them and remove them.
  • Your Active HUDs: a list of worn HUDs, again with a relative rendering complexity indicator and the option to highlight and remove any of the listed HUDs.
The Graphics Setting and Avatars Nearby panels in the Performance / Graphics Speed floater

Prior to the release of this viewer, concerns were expressed at a number of the Content Creation User Group meetings that doing so before the re-working of the Avatar Complexity values through the ARCTan project would lessen the impact of those changes when they are eventually deployed. I’m not sure such arguments hold that much weight, simply because a) a lot of people have already made up their minds about avatar complexity and Maximum complexity, so are unlikely to be swayed by any change in how the values are calculated; and b) those who already take note of avatar complexity and the options for managing them, no matter how the values are calculated.

That said, playing with the viewer did raise a number of niggles / ideas with me:

  • Consistency of terminology: we’re all used to terms like “Quality and Speed” and “Draw Distance” in relation to graphics settings – so seeing these arbitrarily renamed to (the contextually meaningless) “Shortcuts” and “Visibility Distance” is a little disconcerting. I hope that labelling overall – whichever terms are used going forward are made consistent across the viewer.
  • That said, the use of numbers to denote quality settings rather than the “mid” to “ultra” labels, is an improvement, and I certainly hope that it is fed back into Preferences → Graphics.
  • The use of the word “hide” in reference to the Maximum Complexity slider is misleading – avatars are not “hidden” when using this slider, but are still rendered, if only as simplified grey humanoid shapes.
  • It would be useful to have Max No. of Non-Imposter avatars added to the Avatars Nearby panel, as for some this is a preferred method of reducing avatar impact on their system over seeing “jellydolled” (or “greyed” as it should perhaps now be) avatars.
  • The Avatars Nearby panel could perhaps also benefit from some additional explanatory text, such as a more rounded note on Maximum Complexity to help encourage people to use it.

As noted, this is the first iteration of the viewer and floater in order for it to gain some exposure and generate feedback from those interested in trying it. Those who do want to offer feedback on it should do so via the Jira as either bug reports or feature requests, depending on the nature of the feedback.

Links

The Project UI viewer: a look at the new user Guidebook

via Linden Lab

In  May, the Lab issued the Project UI RC viewer, part of the work to overhaul the new user experience and provide greater context and support for incoming users when getting to grips with Second Life and – in this case – the viewer.

At  the time it was issued, I  provided an overview of the viewer based on my own walk-through of the viewer as it was at that time, and notes supplied by Alexa Linden (see: Lab issues Project UI viewer aimed at new users).

Since then, the Project UI viewer has progressed through the RC process, and was promoted to de facto release status in week #25. Along the way, it saw some revisions and additions, including a Guidebook to help new users find their way around the viewer. And it is that Guidebook I’m taking a look at here.

Before getting to it, however, a quick recap on the changes within the viewer previously covered:

  • A new menu option called Avatar, and streamlined / revised right-click avatar context menus.
  • Improvements to the Inventory panel.
  • An updated Places floater.

All of these are looked at in the blog post linked to above.

New User Guidebook

The Guidebook appears to be a case of taking an idea first seen in the Basic version of Viewer 2.0 a decade ago, and greatly enhancing it.

In 2011, the was to provide new users with a simple guide to tackle basic actions such as walking and chatting through a pop-up How To guide accessed via a toolbar button. The problem was that the idea was never really followed through: the How To guide was brief to the point of being ignored, and never fully leveraged.

The new Guidebook takes the same initial approach as the old How To, using a button within the toolbar to open a dedicated panel, samples of which are shown below.

The pages of the new Guidebook relayed to avatar / camera movement –  click for full size

However, it is at this point that all similarities with the How To approach ends, as the Guidebook dives a lot deeper into basic needs – walking, communicating, interacting with objects, an overview of avatar customisation and using avatar attachments, finding where to go in SL and where to meet people. It also offers pointers to various viewer menu options and how things like right-click context menus work.

On first being opened, the Guidebook will display the first of the pages dealing with avatar movement, with each page including “next” and/or “back” buttons. Pages display information clearly and concisely, and good use is made of illustrations.

The Guidebook menu

All of the topics covered by the Guidebook can be accessed directly at any time via the three-bar Menu icon in the top-right of panel, then clicking on the desired topic. This index also includes an option to teleport to a Welcome Back Island – a duplicate of the new Welcome Islands incoming users may arrive at, giving those already in SL the opportunity to hop back to an environment where they can gain a refresher. In addition, some sections within the Guidebook also reference locations within the Welcome Islands that also help new users gain familiarity with Second Life and the viewer controls.

Obviously, not everything can be covered in a single guide like this, and people will doubtless have their own views on what “should” be included. However, what is provided should provide incoming users with a reasonable grounding in finding their way around the viewer. It’s also worth remembering that these updates may not be all that’s coming by way of viewer UI updates and/or simplification.

A further aspect of the new user experience is that the Welcome Islands will use an Experience, which in turn uses web page links, it is possible there are yet-to-be revealed elements accessed as new users explore / travel through the new Welcome Islands that may actually give further context to the viewer. As such, any final judgement on what is available in the viewer as released might be premature. Given this, I’ll likely / hopefully be returning to these updates to the viewer as an when the new user experience comes on-stream.

In the meantime, the Project UI is available as the default official viewer download, and the updates it contains will, as usual, be a core part of all future viewer updates and releases from the Lab.