2021 CCUG meeting week #5 summary – graphics

Jacob, December 2020 – blog post

The following notes were taken from my audio recording and chat log of the Content Creation User Group (CCUG) meeting held on Thursday, February 4th 2021 at 13:00 SLT. These meetings are chaired by Vir Linden, with dates available via the SL Public Calendar.

The venue for meetings is the Hippotropolis camp fire.

Due to Vir having to depart the meeting early, the majority of the meeting focused on viewer rendering.

SL Viewer

There have been no updates since the promotion of the Dawa Maintenance viewer to de facto release status earlier in the week. the viewer pipelines therefore remain as:

  • Current release viewer Dawa Maintenance RC Viewer, version 6.4.12.555248, dated January 25, 2021, promoted February 1st, 2021 – NEW.
  • Release channel cohorts:
    • Project Jelly viewer (Jellydoll updates), version 6.4.12.553798, January 7, 2021.
    • Custom Key Mappings project viewer, version 6.4.12.553437, January 7, 2021.
  • Project viewers:
    • Love Me Render (LMR) 5 project viewer, version 6.4.12.553511, issued on January 7, 2021.
    • Simple Cache project viewer, version 6.4.11.551403, November 12.
    • Legacy Profiles viewer, version 6.4.11.550519, October 26.
    • Copy / Paste viewer, version 6.3.5.533365, December 9, 2019.
    • Project Muscadine (Animesh follow-on) project viewer, version 6.4.0.532999, November 22, 2019.
    • 360 Snapshot project viewer, version 6.2.4.529111, July 16, 2019.

Viewer Rendering

Love Me Render Viewer

The Graphics team are getting close to an RC release of the Love Me Render 5 (LMR 5) viewer (project viewer version 6.4.12.553511 at the time of writing).

  •  The one remaining issue they addressing with it is the matter of incorrect vertex attribute normals (not normal maps themselves) being rendered with Debug Normals enabled in the viewer (see BUG-228952 “Mesh Debug Normals display incorrectly. Normal Maps on scaled objects appear to use incorrect mesh normals for shading calcs”).
    • This appears to occur with models created in Maya with normals applied, but which uses non-uniform scaling.
    • The fix involves updates to both the Debug Normals code and the affected shader code.
  • The focus of LMR 5 is EEP fixes, apparently including the inverted rainbow issue, going on comments made (although currently that isn’t listed in the release notes), together with more general fixes related to things like specularity renderings, etc. It also includes a number of TPV contributions that fix assorted rendering issues.
  • It is hoped an RC version of the viewer will be available in the next week or two, with the aim of moving it to release status as rapidly as possible.

Outside of any specific rendering work going on for LMR 5 (or which my be directed into the next Love Me Render viewer, aka LMR 6 (such as BUG-5975 and BUG-229462, which might be investigated as part of LMR 6 work), it was indicated the Graphics Team would like to work on the environment map, if only to reduce the performance load it currently places on rendering.

Rendering API Replacement

No specific updates at present on the replacement of OpenGL as the rendering API.However, it was indicated that consideration is still being given to supporting more than one rendering capability by means of some form of back-end “tool kit” or library. There are a number of reasons for this:

  • As indicated in my previous CCUG meeting summary, there appears to be a substantial portion of Windows users accessing Second Life on hardware that cannot support more recent APIs like Vulkan (which had been the preferred choice).
  • Whilst they are set to deprecate OpenGL at some point in the future (prompting the need for the switch away from OpenGL), Apple actually don’t provide native support for Vulkan, thus prompting the need for a second alternative (such as – perhaps – Apple’s own Metal API).
  • Therefore, the use of an intermediary tool box / library approach would, whilst adding a layer of complexity, allow Linden Lab to potentially leverage more than one rendering API to support a wider range of user hardware.

Looking to Possible Future Options

Some thought is being given to rendering capabilities beyond the replacement of OpenGL, such as physically based rendering (PBR).

  • It is important to note that none of these are currently being considered for adoption at this point in time; they are simply on the Graphics Team’s wish list of things they would like to look at.
  • As such, if something like PBR were to be adopted, it would not be until some time after the need to replace OpenGL has been addressed, which itself is liable to be a long-term piece of work.
  • In terms of PBR in particular, it was noted that in practical terms, it would only be of value on  objects that utilise PBR materials.
    • This likely means that if it  were implemented, it would be a opt-in capability: creators would set a flag against content they are importing to indicate it uses PBR, and thus use the required shaders.
    • Such an approach would prevent any “breakage” of existing content (which would effectively continue to be rendered “as is”, and in turn allows creators to determine which of their products they might like to update to / replace with models utilising PBR.
  • Outside of PBR, it was suggested that High-dynamic-range  (HDR) rendering might be something the Graphics Team would like to look at at some point in the future.

Mesh File Formats

Again, not a project under active development or something that will come about in the near future, but the Graphics team are also giving thought to potential mesh model file format support outside of the current .DAE.

  • In the past, users have expressed a desire for .FBX support; the problem here is potentially that whilst widely used and accepted as a “standard”, it is pretty much close-source by Autodesk.
  • The open-source Graphics Language Transmission Format  (gITF) has been suggested by some as an alternative, particularly given it is already supported by Blender as via a plug-in option, and the Graphics Team have indicated they will have a look at this as and when time allows.

Date of Next Meeting

  • Thursday, February 18th, 2021.

2021 CCUG meeting week #3 summary

Snowdrops, November 2020 – blog post

The following notes were taken from my audio recording and chat log of the Content Creation User Group (CCUG) meeting held on Thursday, January 21st 2021 at 13:00 SLT. These meetings are chaired by Vir Linden, with dates available via the SL Public Calendar.

The venue for meetings is the Hippotropolis camp fire.

SL Viewer

The Dawa Maintenance RC viewer updated to version 6.4.12.555058 on Wednesday, January 20th signalling the issues within the build process that had stalled viewer updates have been cleared. However, at the time of writing all other viewers in the current pipelines remain unchanged:

  • Current release viewer version 6.4.11.551711, formerly Cachaça Maintenance RC viewer promoted on November 12 – No Change.
  • Release channel cohorts (please see my notes on manually installing RC viewer versions if you wish to install any release candidate(s) yourself):
    • Project Jelly viewer (Jellydoll updates), version 6.4.12.553798, January 7, 2021.
    • Custom Key Mappings project viewer, version 6.4.12.553437, January 7, 2021.
  • Project viewers:
    • Love Me Render (LMR) 5 project viewer, version 6.4.12.553511, issued on January 7, 2021.
    • Simple Cache project viewer, version 6.4.11.551403, November 12.
    • Legacy Profiles viewer, version 6.4.11.550519, October 26.
    • Copy / Paste viewer, version 6.3.5.533365, December 9, 2019.
    • Project Muscadine (Animesh follow-on) project viewer, version 6.4.0.532999, November 22, 2019.
    • 360 Snapshot project viewer, version 6.2.4.529111, July 16, 2019.

General Viewer Notes

Viewer Caching

  • LL are in the process of overhauling and improving the viewer’s cashing mechanisms.
  • There is already a Simple Cache  project viewer that is available (see the viewer list above). This will be progressing to RC status soon.
  • A further project by Callum Linden is to improve the caching and loading of textures within the viewer. No ETA at present as to when a project viewer for this will surface.
  • Mention was made in 2020 about detaching the viewer UI rendering from scene rendering in order to improve viewer performance. This work is still in the discussion/ initial development stages.

Viewer Rendering Situation (Moving from OpenGL)

Work on updating the viewer’s rendering API to something more recent than OpenGL (which is to be deprecated by Apple anyway) has hit an issue. Vulkan had been looked to as a replacement for OpenGL. However

  • Logging added to the viewer to assess the capabilities of users’ home systems has revealed that around 20% of existing Windows users have systems that cannot support the Vulkan API (e.g. due to their GPU – notably those with Intel graphics). However, this figure is mixed:
    • It may be conservative, as there are users who are accessing SL with older viewers without the necessary logging, so it could be higher, or
    • The data isn’t currently granular enough to to differentiate between users running on hardware that cannot support Vulkan and those who have suitable GPUs, but simply haven’t updated their drivers.
  • This means the work on any potential move to an API change has paused while LL assess options.
  • One course of action might be to add some form of abstraction layering in the viewer, such that those able to support a more recent API do so,whilst older systems continue to use OpenGL – but decisions of direction / options have yet to be finalised.
  • Another issue with updating the rendering API is the risk of content breakage if an incoming API handles some rendering features in a substantially different manner to OpenGL.
  • One aspect related to systems used to access SL lies within LL’s own Recommended specs page, which continues to list GPU options that are well out-of-date. For example, the basic “recommended” Nvidia GPUs are listed as GeForce 9 series / GeForce 200 series, which ceased being supported by Nvidia in 2016.

ARCTan

Project Summary

An attempt to re-evaluate object and avatar rendering costs to make them more reflective of the actual impact of rendering either in the viewer. The overall aim is to try to correct some inherent negative incentives for creating optimised content (e.g. with regards to generating LOD models with mesh), and to update the calculations to reflect current resource constraints, rather than basing them on outdated constraints (e.g. graphics systems, network capabilities, etc).

As of January 2020 ARCTan has effectively been split:

  • Viewer-side changes, primarily focused on revising the Avatar Rendering Cost (ARC) calculations and providing additional viewer UI so that people can better visibility and control to seeing complexity.
  • Work on providing in-world object rendering costs (LOD models, etc.) which might affect Land Impact will be handled as a later tranche of project work, after the avatar work.
  • The belief is that “good” avatar ARC values can likely be used as a computational base for these rendering calculations.

Status

Focus on this project was reduced due to the to concentrate on the Uplift project work, so the last couple of months of 2020 saw little direct progress. Vir hopes to be able to turn his attention back to it “before too long”.

In Brief

  • As is common for the start of a year, priority lists are currently being reviewed and updated.
  • Graphics updates: as well as the current LMR 5 project viewer with fixes for graphics issues, the Graphics team are also working on other issues, such as rainbows having the colour spectrum inverted  (i.e. appearing as VIBGYOR rather than ROYGBIV). However, it is until to fix the sorting issue that causes the Moon to appear in front of rainbows.

Date of Next Meeting

  • Thursday, February 4th, 2021.

2020 CCUG meeting week #51 summary

Whimberly, October 2020 – blog post

The following notes were taken from my audio recording and chat log of the Content Creation User Group (CCUG) meeting held on Thursday, December 17th 2020 at 13:00 SLT. These meetings are chaired by Vir Linden, with dates available via the SL Public Calendar.

The venue for meetings is the Hippotropolis camp fire.

SL Viewer

No changes through the week to the current crop of viewers:

  • Current release viewer version 6.4.11.551711, formerly Cachaça Maintenance RC viewer promoted on November 12 – No Change.
  • Release channel cohort:
    • Dawa Maintenance RC Viewer, version 6.4.12.553723, December 15.
    • Custom Key Mappings project viewer, version 6.4.12.552100, November 12.
  • Project viewers:
    • Project Jelly project viewer (Jellydoll updates), version 6.4.12.552224, December 4.
    • Simple Cache project viewer, version 6.4.11.551403, issued on November 12.
    • Legacy Profiles viewer, version 6.4.11.550519, October 26.
    • Copy / Paste viewer, version 6.3.5.533365, December 9, 2019.
    • Project Muscadine (Animesh follow-on) project viewer, version 6.4.0.532999, November 22, 2019.
    • 360 Snapshot project viewer, version 6.2.4.529111, July 16, 2019.

General Viewer Notes

  • The two RC viewers are vying for promotion to release status. However, the next promotion is unlikely to come until the new year.
  • The Profiles viewer, the Simple Caching viewer and the Project Jelly viewer are almost in a position to be promoted to RC status.
  • There are some viewers waiting on QA – such as the next graphics fixes viewer (the Love Me Render viewer).

“Thanksgiving Bakefail” Issue and Current Outfit Folder Problems

  • As a result of the “Thanksgiving Bakefail” issue that saw a portion of users unable to rez their avatars beyond a cloud status,  LL have been working on the back-end systems to make this kind of event less likely. This will also involve changes to the viewer as well,  so the work will “take a while” to complete.
  • Essentially, these kind of issues are the result of multiple versions of the Current Outfit folder appearing in inventory, resulting in the viewer and the Bake Service coming into conflict over which version is the “current” version,  so appearance updates fail.
  • The corrective action will be to ensure the back-end services (Bake, etc), have primacy for creating the Current Outfit Folder, and removing the viewer’s ability to do so.
  • The problem has arisen because historically, to speed inventory loading, the viewer has been able to initiate creation of folders, including essential system folders.

In Brief

  • Creators still feel the cost of Animesh (in terms of LI) is too high.
    • Vir hopes to re-visit the overall cost of Animesh, but reminded people that “too high” is a relative term; the cost of Animesh in terms of rendering and impact is actually a lot more accurate than is currently given for other items (hence the ARCTan project).
    • However, he acknowledges that the rendering cost formulas for avatars and in-world objects do have issues (again, hence ARCTan project).

Date of Next Meeting

  • Thursday, January 7th, 2021.

2020 CCUG meeting week #49 summary

Grauland, October 2020 – blog post

The following notes were taken from my audio recording and chat log of the Content Creation User Group (CCUG) meeting held on Thursday, December 3rd 2020 at 13:00 SLT. These meetings are chaired by Vir Linden, with dates available via the SL Public Calendar.

The venue for meetings is the Hippotropolis camp fire.

SL Viewer

A new Maintenance RC viewer, version 6.4.12.553053, was release on Thursday, December 3rd. Otherwise, the current selection of official viewers remains unchanged:

  • Current release viewer version 6.4.11.551711, formerly Cachaça Maintenance RC viewer promoted on November 12 – No change..
  • Release channel cohorts:
    •  Custom Key Mappings project viewer, version 6.4.12.552100, November 12.
  • Project viewers:
    • Simple Cache project viewer, version 6.4.11.551403, issued on November 12.
    • Project Jelly project viewer (Jellydoll updates), version 6.4.11.551213, November 2.
    • Legacy Profiles viewer, version 6.4.11.550519, October 26.
    • Copy / Paste viewer, version 6.3.5.533365, December 9, 2019.
    • Project Muscadine (Animesh follow-on) project viewer, version 6.4.0.532999, November 22, 2019.
    • 360 Snapshot project viewer, version 6.2.4.529111, July 16, 2019.

ARCTan / Jellydoll / Imposter Avatars

  • Vir has most recently looking at timers / frame rate variability.
  • As a reminder:
    • The current ARCTan work is focused on the viewer-side updates to avatar complexity calculations.
    • Work on providing in-world object rendering costs (LOD models, etc.) which might affect Land Impact will be handled as a later tranche of project work, after the avatar work.

Graphics

  • Work has commenced on separating out the rendering of viewer UI elements from scene rendering.
    • The reason for this is that the UI currently gets rendered on per frame basis, which is performance expensive on what is essentially a relatively static element of the viewer.
    • The aim is to revise the UI such that it is only re-drawn was needed, and it is hoped this will result in a performance gain in terms of viewer frame rates.
    • When this work is in a condition where it can be released, it will appear in its own project / RC viewer, and not as a part of the Love Me Render graphics-specific viewer pipeline.
  • No news on work for replacing OpenGL.

In Brief

  • There may be an issue with the viewer ignoring avatar custom joint positions if they do not have a weight associated with them. This appears true for .DAE files exports from Maya, and possibly with exports from Blender 1.7.9.a / 1.7.9.b (although Avastar may automatically compensate for unweighted custom joints by given them a default weighting). However, it is not clear if the issue lies with the modelling software or the mesh uploader, and its been requested that those experiencing these issues check the mesh upload data to see if anything is being pruned.

Date of Next Meeting

  • Thursday, December 17th.

2020 CCUG meeting week #47 summary

Ruegen, October 2020 – blog post

The following notes were taken from my audio recording and chat log of the Content Creation User Group (CCUG) meeting held on Thursday, November 19th 2020 at 13:00 SLT. These meetings are chaired by Vir Linden, with dates available via the SL Public Calendar.

The venue for meetings is the Hippotropolis camp fire.

SL Viewer

At the time of writing, the current selection of official viewers (release, RC and projects) was as follows:

  • Current release viewer version 6.4.11.551711, formerly Cachaça Maintenance RC viewer promoted on November 12 – NEW.
  • Release channel cohorts:
    •  Custom Key Mappings project viewer, version 6.4.12.552100, November 12.
  • Project viewers:
    • Simple Cache project viewer, version 6.4.11.551403, issued on November 12.
    • Project Jelly project viewer (Jellydoll updates), version 6.4.11.551213, November 2.
    • Legacy Profiles viewer, version 6.4.11.550519, October 26.
    • Copy / Paste viewer, version 6.3.5.533365, December 9, 2019.
    • Project Muscadine (Animesh follow-on) project viewer, version 6.4.0.532999, November 22, 2019.
    • 360 Snapshot project viewer, version 6.2.4.529111, July 16, 2019.

General Viewer Notes

  • The Custom Key Mapping viewer is thought to be reaching a point where it can be promoted as the de facto release viewer.
  • A new Love Me Render (LMR) RC / project viewer is due to be issued. LMR-5 will include non-EEP bug fixes.
  • The Copy / Paste project viewer is on hold as a result of running into UI complications, and is currently awaiting further work by the viewer UI team, or possibly a decision to scrap the viewer entirely.

ARCTan / Jellydoll / Imposter Avatars

  • Vir has most recently looking at timers / frame rate variability.
  • As a reminder:
    • The current ARCTan work is focused on the viewer-side updates to avatar complexity calculations.
    • Work on providing in-world object rendering costs (LOD models, etc.) which might affect Land Impact will be handled as a later tranche of project work, after the avatar work.

Graphics

  • Work has commenced on separating out the rendering of viewer UI elements from scene rendering.
    • The reason for this is that the UI currently gets rendered on per frame basis, which is performance expensive on what is essentially a relatively static element of the viewer.
    • The aim is to revise the UI such that it is only re-drawn was needed, and it is hoped this will result in a performance gain in terms of viewer frame rates.
    • When this work is in a condition where it can be released, it will appear in its own project / RC viewer, and not as a part of the Love Me Render graphics-specific viewer pipeline.
  • No news on work for replacing OpenGL.

In Brief

  • There may be an issue with the viewer ignoring avatar custom joint positions if they do not have a weight associated with them. This appears true for .DAE files exports from Maya, and possibly with exports from Blender 1.7.9.a / 1.7.9.b (although Avastar may automatically compensate for unweighted custom joints by given them a default weighting). However, it is not clear if the issue lies with the modelling software or the mesh uploader, and its been requested that those experiencing these issues check the mesh upload data to see if anything is being pruned.

Date of Next Meeting

  • Thursday, December 3rd.

2020 CCUG meeting week #45 summary

Where Our Journey Begins, September 2020 – blog post

The following notes were taken from my audio recording and chat log of the Content Creation User Group (CCUG) meeting held on Thursday, November 5th 2020 at 13:00 SLT. These meetings are chaired by Vir Linden, and agenda notes, meeting SLurl, etc, are are available on the Content Creation User Group wiki page.

SL Viewer

At the time of writing, the current selection of official viewers (release, RC and projects) was as follows:

  • Current release viewer version 6.4.10.549686, formerly the Mesh Uploader RC promoted on October 14 – No Change.
  • Release channel cohorts (please see my notes on manually installing RC viewer versions if you wish to install any release candidate(s) yourself):
    • Cachaça Maintenance RC viewer, version 6.4.11.551139, issued October 27.
  • Project viewers:
    • Project Jelly project viewer (Jellydoll updates), version 6.4.11.551213, November 2.
    • Custom Key Mappings project viewer, version 6.4.10.549685, November 2.
    • Legacy Profiles viewer, version 6.4.11.550519, October 26.
    • Copy / Paste viewer, version 6.3.5.533365, December 9, 2019.
    • Project Muscadine (Animesh follow-on) project viewer, version 6.4.0.532999, November 22, 2019.
    • 360 Snapshot project viewer, version 6.2.4.529111, July 16, 2019.

ARCTan / Jellydoll / Imposter Avatars

  • Bug fixes for Jellydolls include:
    • Fixing an issue where jellydolled avatars could suddenly vanish with viewed on Mac systems.
    • Ensuring Amimesh attachments on imposter avatars update in sync with the avatar.
    • Impostered avatars and their Animesh attachments are currently rendered entirely separately to one another, so the code might be looked at to unify their rendering.
    • A general clean-up on the imposter code, which has led to the discovery that while code was added to the viewer to check to see if impostered avatars had been updated, it has never been hooked up to updating the imposter avatar as rendered by the viewer, leaving them frozen. This is now being fixed.
  • Once the Mac issue is sorted, the play is to merge the Jellydoll updates back into the ARCTan project (from which they were split earlier in the year).
    • However, the current Jellydoll work will progress as is through the currently project viewer continued through to RC and, ultimately, release.
  • As a reminder:
    • The current ARCTan work is focused on the viewer-side updates to avatar complexity calculations.
    • Work on providing in-world object rendering costs (LOD models, etc.) which might affect Land Impact will be handled as a later tranche of project work, after the avatar work.

Graphics

  • No news on work for replacing OpenGL.
  • Ptolemy Linden from the Graphics team has been working on performance improvements, notably related to Linden Water rendering. This work is currently focused on providing a means for those on low-end systems to completely disable water reflection rendering entirely and / or to make water opaque, both to reduce the rendering load.
  • The entire water rendering issue is complicated for a range of reasons (e.g. the fact the water plane is still drawn at altitude even though its appearance is occluded by the sky sphere, the fact that any changes made for some users could impact the “shared experience” / expected behaviour for others, etc.).
  • Ptolemy also noted that the viewer collects a lot of static rendering information that could potentially be used to assist with better drawing / rendering of scenes, and this could be something that might be looked at in more detail once the Project Uplift work is completed.

Date of Next Meeting

  • Thursday, November 19th.