2022 TPVD meetings week #19 summary: PBR materials

RockMead, April 2022 – blog post

The following notes were taken from the video recording by Pantera (embedded at the end of this piece, my thanks to her as always for recording the meetings) of the Third-Party Viewer Developer (TPVD) meeting on Friday, May 13th, 2022 at 13:00  SLT. These meetings are chaired by Vir Linden, and dates for them can be obtained from the SL Public Calendar.

Important: as from this meeting, the TPV Developer meeting has moved to a four-week schedule.

Please note that this is a summary of the key topics discussed during the meeting and is not intended to be a full transcript of either. However, the video does provide a complete recording of the TPVD meeting, and timestamps to the relevant points within it are included in the notes below.

Available Viewers

[Video: 0:00-6:22]

On Thursday, May 12th:

  • The Makgeolli Maintenance RC viewer (Maintenance M) viewer updated to version 6.5.6.571575.
  • The Performance Improvements RC viewer updated to version 6.6.0.571736.

On Tuesday, May 10th, the Performance Floater and Auto-FPS project viewer updated to version 6.5.4.571296.

The rest of the currently available official viewer versions remain as:

  • Release viewer: version version 6.5.5.571282 – formerly the MFA RC viewer, dated April 26, promoted Wednesday, May 4th – NEW.
  • Project viewers:
    • Mesh Optimizer project viewer, version 6.5.2.566858, dated January 5, issued after January 10.
    • Legacy Profiles viewer, version 6.4.11.550519, dated October 26, 2020.
    • Copy / Paste viewer, version 6.3.5.533365, dated December 9, 2019.

General Viewer Notes

  • The Performance Improvements RC viewer remains the next in line for promotion to de facto release status, the latest update to this viewer awaiting data on crash rates prior to potentially being promoted.
  • MFA Enforcement: the eventual plan with multi-factor authentication (MFA) is to “enforce” it for all users who have opted-in to using it so that when logging-in to SL on a viewer without MFA support, they will see a message requesting they either swap to using one with MFA support or disable MFA from their Second Life account dashboard.
    • It is not clear when such enforcement will commence. However, the official viewer, Catznip, Kokua and Cool VL are all known to support MFA, and an MFA version of Firestorm is in the works, so it is likely that the “enforcement” could come in the relatively near future.
    • There will be no change to logging into the viewer for users who have not opted to use MFA or who decided to disable it on their account.
  • https://viewer-login.agni.lindenlab.com/ is a URL referenced in the viewer log-in code, but is currently a redirect and not actually used. LL is therefore planning on removing it.

Additional Materials Support / PBR

[Video: 7:19-20:36]

Note: please also refer to my recent (April / May) CCUG meeting summaries.

Two area of work are currently in progress.

Materials Assets Support

One element of work is to provide “full” Physically Based Rendering (PBR) materials support utilising the glTF specification.

  • This work is currently focused on implementing a new materials asset type that will allow materials surfaces created utilising the PBR workflow to be imported to SL and then applied to their desired object face(s).
  • LL hopes that creators using PBR will also supply textures entries (e.g. a diffuse map + normal & specular maps (if required) + associated parameters as we know them today in the build floater) so that systems / clients that cannot / do not run the supporting PBR code can display these texture entries instead, rather than leaving objects with blank faces.
    • It has been suggested than any such use of “fallback” texture entries be an automated process, rather than something that has to be done manually by the creator.
    • Longer term, there will be some form of LSL support for this as well, although the extent of this has yet to be fully determined. However, it is liable to be along similar lines to texture application using LSL.
  • Once defined, the materials assets will be stored using the glTF 2.0 specification.

Reflection Probes / Environment Maps

A parallel piece of work is adding sport to SL for reflection probes to update the generation of the environment maps (because the current cube mapping used by SL is limited and would not work will with PBR).

  • The key point here is that the introduction of reflection probes + updated cube maps will work with both “PBR” and “legacy” content.
  • This work has been underway for the last couple of weeks, including input from some content creators / viewer developers.
  • “Outdoor” probes will likely be subject to automated placement, but with a hierarchy applied such that they don’t override probes placed inside structures.

General Notes

  • The majority of discussions on this work are being handled through the Second Life Discord server, within the #content-features channel.
    • Access to this channel must be specifically requested by content creators after they have joined the Discord server.
  •  In terms of user testing, the approach to this work is similar to that taken with Mesh:
    • Testing will initially be carried out on Aditi (the beta grid) as things develop, allowing various “PBR” and “legacy” content to be uploaded and tested, well before anything is implemented on the main grid or made widely available to users through the viewer.
    • Content creators wishing to test content are strongly advised to join the Discord discussions and join in with testing from there.
  • glTF mesh object uploads: this is on the roadmap of things the Lab would like to include in the initial project. However, depending on how work progresses and time frames imposed, it may not form a part of the initial work that is shipped and slip to being “tackled at some point”.
  • Support for materials variants within the glTF assets (e.g. to allow colour variants in fatpack items) is also under internal discussion at the Lab.

In Brief

  • [Video 21:09-23:30] The simulator fixes for off-line Group and Friend invites failing to update following acceptance should be surfacing on the RC channels in week #20.
  • [Video 22:44-27:40] a discussion on rigged meshes and bounding boxes focused on a change that was made to overcome issues of people creating oversized bounding boxes for their rigged meshes in order to avoid providing LODs (and forcing the viewer to always render them at a performance impact) that was recently reverted.
    • Runitai Linden explained that the revision was actually the result of changes made within the Performance Improvements Viewer that clashed with the rigged mesh bounding box changes, and that there is still an open issue to ensure the rigged mesh bounding box is always an appropriate size.
    • This rolled into a broader discussion on the complexities of rigged mesh visual size, scaling, bounding boxes / LODs selection, impact of the animation system, etc.
  • [Video 28:04-End] The above leads into a discussion on LODs in general and the idea of auto-LODding content vs. (good and bad) custom LOD creation (and what constitutes “good” LOD modelling – e.g. basing on surface area or triangle count?), LOD / LI conflicts, and trying to strike an equitable balance such that LODs can be “properly” defined and used.
    • As this discussion covers a lot of ground, I refer those interested to the video.