2023 SL SUG meetings week #29 summary

Luane’s Magical World, May 2023 – blog post

The following notes were taken from the Tuesday, July 18th Simulator User Group (SUG) meeting. They form a summary of the items discussed and is not intended to be a full transcript. A video of the entire meeting is embedded at the end of the article for those wishing to review the meeting in full – my thanks to Pantera for recording it.

Meeting Overview

  • The Simulator User Group (also referred to by its older name of Server User Group) exists to provide an opportunity for discussion about simulator technology, bugs, and feature ideas.
  • These meetings are conducted (as a rule):
  • They are open to anyone with a concern / interest in the above topics, and form one of a series of regular / semi-regular User Group meetings conducted by Linden Lab.
  • Dates and times of all current meetings can be found on the Second Life Public Calendar, and descriptions of meetings are defined on the SL wiki.

Server Deployments

  • On Tuesday, July 18th, 2023, all simhosts on the the SLS Main channel were restarted without any deployment.
  • On Wednesday, July 19th, 2023, the BlueSteel RC channel should be updated with a new simulator version, comprising:
    • llGetPrimitiveParams will be able to identify animesh.
    •  The estate ban limit gets raised to 750, and the number of estate managers to 20 – however, a viewer-side update is required for these changes to be visible.
    • Two new LSL functions for LSD llLinksetDataDeleteFound and llLinksetDataCountFound.
    • Changes to UUID generation on certain items per my week 26 SUG meeting summary (e.g. textures, notecards, materials (particularly the upcoming PBR Materials)) to reduce the amount of duplication. These changes will not impact  UUIDs for objects rezzed in-world or made by the viewer.
    • Further work to correct some of the friends issues (as seen with BUG-232037 “Avatar Online / Offline Status Not Correctly Updating”). However, how effective these updates might be will not be fully understood until the update has been more widely tested through general use on Agni.

Viewer Updates

No updates at the start of the week, leaving the current official viewers in the pipeline as:

General Discussion

  • Core discussion points in the meeting:
    • [Video: 5:57 (start)] A general discussion on the new LSL / LSD functions and associated constants, which widens into a wider discussion on LSL / LSD.
    • [Video: 18:58 (start – overlapping with LSL / LSD discussion)] Discussion on larger regions vs. attempting to fix current region crossing issues. In short: larger regions would be a deep, fundamental change to SL (much of the simulator and viewer code is built on the assumption that regions are sized at 256x256m) which would likely not resolve the overall issue of region crossing events; ergo, the general consensus was towards trying to solve for crossing issues with the current region size. This led to a broader discussion on region sizing, user on-boarding, etc.
    • [Video: 21:22 (start – overlapping with the above)] Questions on throttling glTF overrides on animations (particularly in reference to puppetry).
  • In brief:
    • Confirmation that the ability to allow experiences to access the key-store from anywhere without land permission should be in the next simulator maintenance update.
    • The work to lighten the impact of avatars entering a region (in particular via teleport) impacting region / viewer responsiveness has yet to reach the main grid.

† The header images included in these summaries are not intended to represent anything discussed at the meetings; they are simply here to avoid a repeated image of a rooftop of people every week. They are taken from my list of region visits, with a link to the post for those interested.

2023 SL Puppetry project week #28 summary

Puppetry demonstration via Linden Lab – see below.  Demos video with the LL comment “We have some basic things working with a webcam and Second Life but there’s more to do before it’s as animated as we want.”

The following notes have been taken from chat logs and audio recording of the Thursday, July 13th, 2023 Puppetry Project meetings. Notes in these summaries are not intended to be a full transcript of every meeting, but to highlight project progress / major topics of discussion.

Project Overview

General Project Description as Originally Conceived

LL’s renewed interest in puppetry was primarily instigated by Philip joining LL as official advisor, and so it really was about streaming mocap. That is what Philip was interested in and why we started looking at it again. However since Puppetry’s announcement what I’ve been hearing from many SL Residents is: what they really want from “puppetry” is more physicality of the avatar in-world: picking up objects, holding hands, higher fidelity collisions. 
As a result, that is what I’ve been contemplating: how to improve the control and physicality of the avatar. Can that be the new improved direction of the Puppetry project? How to do it?

– Leviathan Linden

  • The project is rooted in the in idea of “avatar expressiveness”, referenced in a February 2022 Lab Gab session with Philip Rosedale and Brad Oberwager and officially introduced as Puppetry in August 2022 to provide a means by which avatars can mimic physical world actions by their owners (e.g. head, hand, arm movements) through tools such as a webcam and using technologies like inverse kinematics (IK) and the  LLSD Event API Plug-in (LEAP) system.
  • Since that time the project has expanded in size, attempting to encompass improving SL’s (somewhat primitive) IK system; investigating and developing ideas for direct avatar-to-avatar, avatar-to-object interactions (“picking up” an apple; high-fives. etc.); providing enhanced LSL integration for animation control; broader hardware support; adoption of better animation standards, etc.
  • This has led to a change in approach for the project – see below for more.

Bugs, Feature Requests and Code Submissions

  • For those experimenting with Puppetry, Jiras (bug reports / fixes or feature requests) should be filed with “[Puppetry]” at the start of the Jira title.
  • There is also a public facing Kanban board with public issues.
  • Those wishing to submit code (plug-ins or other) or who wish to offer a specific feature that might be used with Puppetry should:

Resources

Change In Approach

  • The Puppetry User Group meetings have, until now, been held on Aditi (the Beta grid) at the Castelet Puppetry Theatre, commencing at 13:00 SLT, and generally on alternate Thursdays to the Content Creation meetings, and as per the Second Life Public Calendar.
  • As of the July 13th, 2023 these meetings have now been suspended until further notice.
  • This does not mean the project is being abandoned; it was noted during the meeting that as several of those involved in the project attend other User Group (SUG) meetings – notably, but not exclusively, the Tuesday Simulator User Group meeting -, discussions on Puppetry can continue within hose meetings.
  • Explaining the decision, Simon Linden Noted:
There’s definitely a lot of interested tech and possible features with [Puppetry]. [However] the original idea of doing real-time mocap on webcams was like opening Pandora’s box in terms of features and ideas, and also was a lot harder than we expected … in the end I think it’s better to work on some fundamental tech that can be used in a lot of other ways – like IK, streaming, figuring out how animation data can work with scripts, solving some challenges like just doing a decent hand-shake.

– Simon Linden, July 13th, 2023

  • Elements of Puppetry which have thus far been confirmed as continuing as WIP projects comprised (but are not necessarily limited to):
    • The real time animation streaming component of Puppetry (forming something of a hybrid between the LEAP <-> viewer work already undertaken, and Leviathan Linden’s work in streaming animation playback from one viewer, through the simulator and to other viewers without any direct interaction with the animations by the simulator).
    • IK Improvements and updates (see below).
    • Improved animation import support (see below).
  • There are also broader discussions going on in the Lab regarding possible further overhaul of the animation system.
  • The above decision re: Puppetry meetings being the case, this will be the last of these my dedicated Puppetry Puppetry summaries for the time being, but I will continue to report on Puppetry / related work as and when it is discussed at other meetings such as SUG meetings and Content Creation User Group meetings.

Meeting Notes

Animation Import

  • One of the Puppetry expansions, improving / broadening animation import into Second Life was spun-off into its own project and June.
  • Notably with this work, LL is using Assimp (github: https://github.com/assimp/assimp), which supports some 30-40 animation formats (including the likes of .FBX and glTF), converting them to its own format for ease of import to multiple platforms.
  • The work is now in its own branch of the official viewer (DRTVWR-584, not currently ready for public consumption in any way).
  • This viewer uses the Assimp engine to read animation files, and the viewer extracts data from there for preview and then uploading as a SL animation. Animation imports it supports include:
    • BVH files, as per the current animation import within the viewer.
    • FBX format files.
    • Animations saved with the Mixamo skeleton, as supported by other tools.
  • The Mixamo element of the viewer is currently incomplete, but there is a focus on getting it wrapped up so the viewer can enter the project viewer pipeline at some point for public testing. However, when complete, it is hoped that importing an animation with a Mixamo skeleton from the likes of  Blender or a tool like Rokoko Studio should work fairly seamlessly.
  • To help with imports, Aura Linden has included an option on import to scale motion, which might be further automated slightly, for improved ease-of-use among less experienced content creators.
    • If this process is automated, it will include an capability for manual override of course for those who are more experienced with animation creation and import.

Inverse Kinetics  (IK) Updates

  • Leviathan Linden’s IK work has pretty much become a mini-project in its own right.
  • Most recently, he has been focused on implementing Forward And Backward Reaching Inverse Kinematics (FABRIK) – which is the fundamental algorithm for suggesting new joint positions in a range of applications, including 3D modelling.
  • This work has been in part a matter of trial-and-error, and most recently, Leviathan has been fixing issues of where constraints are enforced in FABRIK which impact the SL avatar, although he still has some more constraints to fix.
  • Fixing these issues has required additional visualisation / debugging tools, which he’s having to code for himself.

Additional Notes

  • A further request was made for updating the bento reference skeletons on the wiki, which are reported as being “broken”, per BUG-10981 “Test content for public Project Bento Testing wiki page” and this Content Creation Discord channel discussion. This will be chased internally at LL to see if action is being taken.

2023 SL SUG meetings week #28 summary

Xanadu Forest, May 2023 – blog post

The following notes were taken from the Tuesday,  July 11th Simulator User Group (SUG) meeting. They form a summary of the items discussed and is not intended to be a full transcript. A video of the entire meeting is embedded at the end of the article for those wishing to review the meeting in full – my thanks to Pantera for recording it.

Meeting Overview

  • The Simulator User Group (also referred to by its older name of Server User Group) exists to provide an opportunity for discussion about simulator technology, bugs, and feature ideas.
  • These meetings are conducted (as a rule):
  • They are open to anyone with a concern / interest in the above topics, and form one of a series of regular / semi-regular User Group meetings conducted by Linden Lab.
  • Dates and times of all current meetings can be found on the Second Life Public Calendar, and descriptions of meetings are defined on the SL wiki.

Server Deployments

  • No deployments are planned for the week, but all simhost channels will be restated on the Tuesday and Wednesday slots.

Upcoming Updates

One (or more) upcoming simulator code updates will include:

  • A fix for the bug on the simulators running the recent LSD additions (llLinksetDataCountFound() & llLinksetDataDeleteFound()) being unable to save scripts.
  • The changes to UUID generation on certain items (e.g. textures, notecards, materials (particularly the upcoming PBR Materials)) to reduce the amount of duplication. These changes will not impact  UUIDs for objects rezzed in-world or made by the viewer. for further background, see my week 26 SUG meeting summary.

Viewer Updates

  • On Monday, July 10th, the Maintenance T RC viewer updated to version 6.6.13.580918.

The rest of the official viewer currently in the pipeline remains as:

  • Release viewer version 6.6.13.580794, formerly the Windows 32 + macOS pre-10.13 RC and dated June 30th and promoted on July 5.
  • Release channel cohorts (please see my notes on manually installing RC viewer versions if you wish to install any release candidate(s) yourself).
    • glTF / PBR Materials viewer, version 7.0.0.580782, June 30.
  • Project viewers:

PBR Materials

There continue to be a lot of questions as to when PBR will be deployed across the entire grid. In response to such questions at the SUG meeting, the following observations were made:

The server has to go through the full RC process still, once it is deemed ready for that. the messaging formats and api interfaces are expected to be stable, but if a showstopper bug is found that can change if needed to fix it.

– Brad Linden

I am about 80% confident the interface is complete and also about 80% confident that we have some server side changes to behaviour within the confines of the existing spec (things like: what can you do with reflection probes). Internally we’re answering questions like “can you kick a reflection probe like a soccer ball? Can you put a reflection probe as the root of your physical vehicle?”

– Maxidox Linden

It almost goes without saying that there are a lot of significant changes in the glTF server & viewer. It’s a case where it is much better to be safe than sorry.

– Rider Linden

In Brief

  • The Asset store is now standing at 2 petabytes.
  • BUG-233853 “Scripts failing to receive rapid touch_start events under LL viewer” had had been seen as fixed in The Maintenance T RC viewer. however, it has been reported the issue has still present, so the bug report has been re-opened.
  • Refer to the latter part of the video for:
    • A general discussion on bots.
    • A discussion on using estate_environment command to update EEP settings across an entire estate / the issues around updating Mainland on a continent-wide basis to overcome the current somewhat darker (than private regions) default environment (short form: it is hoped PBR with its updated environment settings will help matters).

† The header images included in these summaries are not intended to represent anything discussed at the meetings; they are simply here to avoid a repeated image of a rooftop of people every week. They are taken from my list of region visits, with a link to the post for those interested.

2023 week #27: SL CCUG + TPVD meetings summary

[REN] May, 2023 – blog post
The following notes were taken from my audio recording and chat log transcript of the Content Creation User Group (CCUG) meeting held on Thursday, July 6th, and the Third Party Viewer Developer (TPVD) meeting held on Friday, July 7th, 2023. 

Meetings

  • The CCUG meeting is for discussion of work related to content creation in Second Life, including current work, upcoming work, and requests or comments from the community, together with viewer development work.
  • The TPV Developer meeting provides an opportunity for discussion about the development of, and features for, the Second Life viewer, and for Linden Lab viewer developers and third-party viewer (TPV) / open-source code contributors developers to discuss general viewer development.
  • As a rule, both meetings are:
    • Held in-world and chaired by Vir Linden.
    • Conducted in a mix of voice and text.
    • Held at 13:00 SLT on their respective days.
    • Are subject to the schedule set within the SL Public Calendar, which includes locations for both meetings (also included at the end of these reports).
    • Open to all with an interest in content creation / viewer development.
  • As these meetings occasionally fall “back-to-back” on certain weeks, and often cover some of the same ground, their summaries are sometime combined into a single report (as is the case here). They are drawn from a mix of my own audio recordings of the meeting + chat log (CCUG), and from the video of the TPVD meeting produced by Pantera Północy (which is embedded at the end of the summaries for reference) + chat log. Not that they are summaries, and not intended to be transcripts of everything said during either meeting.

Viewer News

  • The Windows 32 + macOS pre-10.13 RC, version  6.6.13.580794 was rapidly promoted to de facto release status on July 6.
  • The Second Life Project Inventory Extensions viewer updated to version 6.6.13.580656, on July 6.

The remaining viewers in the pipeline stand as:

General Viewer Notes:

  • The Windows 32 + macOS pre-10.13 viewer is the last official viewer supporting either the Win 32-bit version or Mac OS versions prior to version 11. As viewers for 64-bit only and MacOS 11+ become the defacto releases, this viewer (as it is and without further update) will be moved to a side cohort, and used when someone running a pre-11 MacOS release or a Windows viewer incapable of running the 64-bit version of the viewer will receive this version instead.
  • Maintenance T has returned to being the most likely RC viewer due for promotion to de facto release status, now that its high crash rate has (hopefully) been brought under control.
  • The Emoji project viewer is liable to see further improvements to the Emoji picker in the UI.

glTF Materials and Reflection Probes

Project Summary

  • To provide support for PBR materials using the core glTF 2.0 specification Section 3.9 and using mikkTSpace tangents, including the ability to have PBR Materials assets which can be applied to surfaces and also traded / sold.
  • There is a general introduction / overview / guide to authoring PBR Materials available via the Second Life Wiki.
  • For a list of tools and libraries that support GLTF, see https://github.khronos.org/glTF-Project-Explorer/
  • Substance Painter is also used as a guiding principal for how PBR materials should look in Second Life.
  • Up to four texture maps are supported for PBR Materials: the base colour (which includes the alpha); normal; metallic / roughness; and emissive, each with independent scaling.
  • Given the additional texture load, work has been put into improving texture handling within the PBR viewer.
  • In the near-term, glTF materials assets are materials scenes that don’t have any nodes / geometry, they only have the materials array, and there is only one material in that array.
  • As a part of this work, PBR Materials will see the introduction of reflection probes which can be used to generate reflections (via cubemaps) on in-world surfaces. These will be a mix of automatically-place and manually place probes (with the ability to move either).
  • The overall goal is to provide as much support for the glTF 2.0 specification as possible.
  • The viewer is available via the Alternate Viewers page.
  • Please also see previous CCUG meeting summaries for further background on this project.

Status

  • The simulator code is now more widely available on the Main Grid, including some sandbox environments, but still in RC. These regions comprise:
  •  However, it should be noted that:
    • Bug-fixing within the simulator code is also on-going, so those testing PBR materials where the support is available should take note of this.
    • Obviously, to take advantage of these regions (both to upload PBR Materials and to see the new PBR environment lighting + the demonstration objects provided within some the regions, you must be running the PBR Materials RC viewer.
    • The cost of upload for Materials without any textures is free; however, the L$10 texture upload fee is charged on a per texture basis for any included within a PBR material surface (up to four can be included).
    • Any PBR materials content created within these environments which is later rezzed in any region that is not Materials-enabled, will become “material-less” in a non-recoverable way, and will need to be recreated.
    • Because of the above point, until PBR support is fully gird-wide, any attempts to put PBR-enabled goods on the Marketplace will be sanctioned.
  • General bug fixing on the viewer is also continuing, and the spread PBR across the grid is largely down to a mix of bug fixing and getting everything stable, and seeing if any particularly nasty blockers or bug rear up.
  • As an aside, the additional texture overhead for PBR Materials has been one of the drivers behind increasing the amount of VRAM the viewer can use for textures, as also now found within the PBR Materials viewer.

PBR Mirrors

  • This is a follow-on project to the PBR Materials, intended to provide a controlled method to enable planar mirrors in SL (i.e. flat surface mirrors which can reflect what is immediately around them, including avatars).
  • The approach Geenz Linden is taking towards enabling mirrors is to use a “hero probe” concept. In short:
    • With PBR, reflections are generated using reflection probes, per the notes above. These are capped at a maximum resolution of 128×128 per object face; hero probes will be capped at 512×512 per object face, providing a mush higher resolution of reflection.
    • Hero probes are an automated selection process. “Standard” probes cannot be converted to hero probes by manual intervention, nor can they be created.
    • A hero probe is selected on the basis of the “mirror” surface / probe and the proximity of the viewing avatar / camera to it.
    • Thus, if there are 5 mirrors place in a room, only the mirror closest to any given avatar / avatar camera will be used as a hero probe within that avatar’s viewer; the other four will remain “standard” probes, until such time as the avatar / camera moves closer to one of them, at which point it will become the hero probe, and the former hero will revert to a standard probe.
  • The primary use case for this work is mirrors, but it is possible, depending on performance impact, etc., that in the future, one additional hero probe might be allowed per scene, and the use case broadened (e.g. the water reflections).

In Brief

Via the TPVD meeting

  • Simulator updates: two simulator RC are currently with QA:
    • One includes updates to the avatar arrival code (i.e. handling avatars being received into the region via TP) which should help reduce the “viewer freeze” / frame rate drop others in the region can experience.
    • The other includes bug fixes and additional LSL functions.
  • General discussions on:
    • Anecdotal spotting of increased teleport failures, but lacking specifics on location, repro, etc. LL’s gridwide stats on TPs is not reflecting any noticeable uptick in failures. Therefore, those who do encounter them frequently are asked to:
      • Log where / when / how such failure occur.
      • If a pattern emerges (e.g. failures consistently occur when teleporting after doing X, or, say, in the first TP are logging-in, or anything else which suggests a possible underlying pattern), to file a Jira bug report, providing as much of the info they’ve gathered as possible.
    • A similar anecdotal report on people seeing themselves (or others as clouds for extended periods with in increased frequency. Again, where this is seen to happen consistently, a bug report is requested.
    • The official viewer CHUI + lack of chat bar (which also leans into what appears to be a lack of awareness that the Chat Console is not a “Firestorm feature”, but something generally available to people – although new users may need their attention directed to (and how to open chat from it), as the fade-out can case thigs to be missed and the click-to-open chat is not obvious.
    • On options available if TPVs that are not available in the official viewer (or possibly, with some, just not exposed through the UI), but which possibly should be.
    • Please refer to the TPVD meeting video below for further details on the above discussions.

Next Meetings

† The header images included in these summaries are not intended to represent anything discussed at the meetings; they are simply here to avoid a repeated image of a gathering of people every week. They are taken from my list of region visits, with a link to the post for those interested.

July 2023 SL Web User Group (WUG) meeting summary

The Web User Group meeting venue, Denby

The following notes cover the key points from the Web User Group (WUG) meeting, held on Wednesday, July 5th, 2023.

WUG meetings:

  • Are held in-world, generally on the first Wednesday of the month – see the SL public calendar.
  • Cover Second Life front-end web properties (Marketplace, secondlife.com, the sign-up pages, the Lab’s corporate pages, etc.).
  • They are not intended for the discussion of Governance issues, land fees / issues, content creation & tools, viewer or simulator development / projects. Please refer to the SL calendar for information on available meetings for these topics.

A video of the meeting, courtesy of Pantera, can be found embedded at the end of this article (my thanks to her as always!), and subject timestamps to the relevant points in the video are provided. Again, the following is a summary of key topics / discussions, not a full transcript of everything mentioned.

This was not the “usual” for of meeting – little was said by way of web updates, etc., which have occurred since the last meeting and no updates on upcoming projects.

In Brief

  • A general discussion on how Flickr is used in relation to the Marketplace: creators using it to promote new products and / or encourage interest in their brands / as an alternative to using in-world Groups, etc., through photo competitions, giveaways, etc; fashion bloggers using it as a means to micro-blog about clothing, hair accessories, etc .; users being able to flow merchants and see images / videos of new releases directly on their Flickr feed, etc.
    • Not sure on the purpose of the question (from the Lab), and no-one asked in the meeting.
  • A request for people who would like to see ONE thing WRT SL web properties and services (preferably). Responses include:
    • Allowing multiple versions of items (e.g. different colours) within a single listing (as has been LOOONNG promised with the Marketplace Styles function, but has yet to actually surface); or to have different versions of an item to be individually listed, but have buttons  within their listings so that users can easily toggle between the, a-la Amazon (e.g. so if an item is offered in say, single, twin, triple and quadruple sets, the various sets (and their prices) appear as a button on one another’s listing page so that users can swap back and forth between them).
    • The ability to remove certain stores / items from Search results (e.g. search for “cars” and have an option to select “don’t show me products from this creator again”, and having further results from that creator removed / excluded from search results).
    • The ability to click on reviewers’ names and see a full list of all their reviews (allowing for better judgement of their bias, etc.).
    • The ability to contact sellers directly through the MP.
    • Having fields which state when an item was listed / last updated on the MP.
  • How does Search order results? It varies, but as a rule of thumb:
    • “First time” searches & general searches from the MP home page, should show results by relevance.
    • “First time” searches of stores should list in terms of newest first.
    • If an option to display search results has been previously selected from the drop-down, that is generally the option use to order the results of further searches (until changed).
  • A lot of discussion on the pros and cons of “brand tagging” listings + identifying folders in Inventory.
  • Very much a meeting where it is easiest to watch the video (enable closed caption if required).

Next Meeting

  • Wednesday, August 2nd, 2023.

2023 week #26: SL CCUG meeting summary

Pemberley – May 2023, blog post
The following notes were taken from my audio recording and chat log transcript of the Content Creation User Group (CCUG) meeting held on Thursday, June 15th, 2023 at 13:00 SLT. 

These meetings are:

  • For discussion of work related to content creation in Second Life, including current work, upcoming work, and requests or comments from the community, together with viewer development work.
  • Usually chaired by Vir Linden, and dates and times can be obtained from the SL Public Calendar.
  • Conducted in mixed voice and text chat. Participants can use either when making comments  or ask or respond to comments, but note that you will need Voice to be enabled to hear responses and comments from the Linden reps and other using it. If you have issues with hearing or following the voice discussions, please inform the Lindens at the meeting.

The following is a summary of the key topics discussed in the meeting, and is not intended to be a full transcript of all points raised.

Viewer News

  • Maintenance T RC viewer updated to version 6.6.13.580700 on Wednesday, June 28th.
  • The GLTF viewer updated to version 7.0.0.580717 on Tuesday, June 27th.

The rest of the official viewers currently in the pipeline remain as:

  • Release viewer: Maintenance S RC viewer, version 6.6.12.579987, dated May 11, promoted May 16.
  • Project viewers:

In addition:

  • Maintenance T is likely the next RC viewer remains the next in line for promotion to de facto release status.
  • The Emoji project viewer is liable to see further improvements to the Emoji picker in the UI.

glTF Materials and Reflection Probes

Project Summary

  • To provide support for PBR materials using the core glTF 2.0 specification Section 3.9 and using mikkTSpace tangents, including the ability to have PBR Materials assets which can be applied to surfaces and also traded / sold.
  • There is a general introduction / overview / guide to authoring PBR Materials available via the Second Life Wiki.
  • For a list of tools and libraries that support GLTF, see https://github.khronos.org/glTF-Project-Explorer/
  • Substance Painter is also used as a guiding principal for how PBR materials should look in Second Life.
  • Up to four texture maps are supported for PBR Materials: the base colour (which includes the alpha); normal; metallic / roughness; and emissive, each with independent scaling.
  • Given the additional texture load, work has been put into improving texture handling within the PBR viewer.
  • In the near-term, glTF materials assets are materials scenes that don’t have any nodes / geometry, they only have the materials array, and there is only one material in that array.
  • The overall goal is to provide as much support for the glTF 2.0 specification as possible.
  • To provide support for reflection probes and cubemap reflections.
  • The viewer is available via the Alternate Viewers page.
  • Please also see previous CCUG meeting summaries for further background on this project.

Status

  • The new RC viewer includes the automatic adjustment to make skies “PBR-ified” (so the checkbox in Graphics Preferences to disable automatically apply reflection probe ambience on skies that do not have it set, so they will be set to a default of 1). Probe ambience must now be set to 0 through the sky settings to deactivate HDR rendering (so no dynamic exposure so the sky is not brightened, and objects with PBR materials will appear duller than intended), and tone mapping is turned off.
    • However, there is a recognised bug related to probe ambience (BUG-234060 “[PBR] Simulator Clamping Environment’s Reflection Probe Ambience to 1”, and it is hoped a fix for this will be in the next simulator build – although it may take a while for the build to make its way into a deployment.
  • The-user supplied PBR content created on Aditi is being transferred to the PBR regions on the Main grid in readiness for more widespread viewing / testing.
  • The LDPW will be producing a PBR demonstrator which will be available through the viewer library.
  • The simulator-side support for glTF Materials is due to be expanded with further simulator RC deployments, which will notably include some sandbox environments.
  • However, it should be noted that:
    • Any glTF / PBR materials content created within these environments which is taken and then rezzed in any region that is not Materials-enabled, will become “material-less” in a non-recoverable way, and will need to be recreated.
    • Because of the above point, until the glTF support is fully gird-wide, any attempts to put PBR-enabled goods on the Marketplace will be sanctioned.
  • General bug fixing on both the simulator and the viewer is continuing.

PBR Terrain

Materials applied to Second Life terrains. Credit: Linden Lab
  • Per past meeting notes, Cosmic Linden is prototyping the application of PBR materials on terrain (see this blog post for more).
  • Further work on bug fixing, including correcting an issue with triplanar mapping to the for terrain repeats, particularly on steep elevation changes (so as to avoid the all-too familiar “stretching” seen with textures).
  • Important notes with this work:
    • It is not terrain painting. It is the application of PBR materials – terrain painting is described as “something that’s on the radar” at LL.
    • The work does not include support for displacement maps.
    • The work is currently only viewer-side, with no corresponding server-side support, the idea here being to prototype what might be achieved and testing approaches / results.

Level of Detail (LOD) Discussion

  • Level of detail (LOD) refers to the complexity of a 3D model representation. In short the idea is to reduce the load on the rendering system by reducing the complexity of the 3D object based on various of criteria (e.g. the distance of the object from the viewer / camera) and using various techniques.
  • Second Life uses the approach of Discrete Levels of Detail (DLOD) method – the use of discrete versions of the original with decreased levels of geometric detail to replace the more complex models using an algorithm primarily based on distance. This has both positives and negatives, some rooted in poor modelling practices by some content creators, others are inherent to flaws within SL itself.
  • In looking at glTF and mesh imports in the future,  LL is considering moving towards more automated and better optimised means of creating LODs to try to reduce some of the current issues.
  • One idea under consideration to achieve this is to leverage Simplygon (or see the Wikipedia entry), which although a proprietary tool, is available as a plug-in for a number of 3D modelling towards (including Blender); the idea being the glTF importer consume whatever output is generated by Simplygon at the creator’s end of the workflow (it being noted that “simply” integrating Simplygon into SL isn’t feasible).
    • Such an approach would offer advantages of optimisation whilst leaving the current upload process in place for those wishing to continue to use it, together with the continued ability to manually create LODs.
  • Some concerns over this possible approach raised at the meeting were:
    • It does not address issues of avatar complexity, which is potentially the biggest viewer performance hit – although in fairness, avatar complexity is really an issue requiring its own focus / project.
    • The nature of some of the Simplygon licensing statements (concern about which might be a mix of the genuine and a basic misunderstanding of legal terms used with regards to “how the Internet works”, so to speak; an issue we had back when LL changed some of the terminology within the SL TOS in 2013).
  • While there are other optimisations tools available, given the state of flux with things within the open source environment, and given Simplygon is recognised as an “industry standard”, offering a means to take output from in and bring it into Second Life is currently seen as the best strategy by the Lab, subject to the concerns raised about the licensing requirements.

In Brief

  • There have been reports of Animesh objects changing / becoming stuck in their lowest LOD in various circumstances, including on region crossing (see BUG-233691 “Animesh re-renders at lowest LOD for extended interval after long-range llSetRegionPos” + listed duplicates). This is believed to be a bounding box issue, and a fix is being developed which should hopefully make it into the next update of the Maint T RC viewer.
  • For PBR, the questions was raised about converting older content with the current Blinn-Phong materials to PBR where the base colour map is not available. The recommendation is that the two are kept separate: if the base colour map is not available for conversion, that Blinn-Phong should continue to be used. No attempt on LL’s part will be made to try to combine the two (PBR / Blinn-Phong) through any kind of conversion tools, as the two are currently entirely separate, allowing creators / users to apply PBR to items which may already have Blinn-Phong, and if the results aren’t good, strip the PBR away and immediately revert to the Blinn-Phong materials. Any attempt to allow “blending” between the two approaches will immediately break this.
  • One consideration actively being worked on within the Lab is glTF licenses and Second Life being able to recognise these. Licences tend to be built-in to glTF complaint 3D models, so as the end goal of the glTF project is to effectively be able to take a glTF model from (say) Sketchfab and drop it into SL, this should be done in respect of the object’s licensing (e.g. if it has a Creative Commons Non-Commercial license, it can be imported into SL but not re-sold after the fact or placed on the SL Marketplace).

Next Meeting

  • Thursday, July 6th, 2023.

† The header images included in these summaries are not intended to represent anything discussed at the meetings; they are simply here to avoid a repeated image of a gathering of people every week. They are taken from my list of region visits, with a link to the post for those interested.