2024 week #38: SL CCUG summary: more on performance updates

[REN], August 2024 – 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,  September 5th, 2024.

Tis meeting was also livesteamed on You Tube by the Lab. The video is embedded at the end of this summary, my thanks to the Lab for providing it.

Table of Contents

Meeting Purpose

  • The CCUG meeting is for discussion of work related to content creation in Second Life, including current and upcoming LL projects, and encompasses requests or comments from the community, together with related viewer development work. This meeting is held on alternate Thursdays at Hippotropolis.
  • Meeting dates and times are recorded in the SL Public Calendar, and they re conducted in a mix of Voice and text chat.
  • The notes herein are a summary of topics discussed and are not intended to be a full transcript of the meeting.

Official Viewers Update

[Video: 0:57-3:05]

  • Release viewer: version 7.1.10.10800445603, formerly the DeltaFPS RC (multiple performance fixes, etc), dated September 11th, promoted September 17th.
  • Release Candidates(s):
    • None at present.

Near-Term Viewer Release Roadmap

As a reminder, linden Lab is focused to bringing viewer performance back up to levels equal or close to “pre-PBR” performance,. This involves both further adjustments in the wake of the PBR releases and also fixing issues not directly related to PBR, which were coincidentally introduced with Graphics Featurette viewer release. This work is currently focused on, but not limited to, the following viewer updates from LL:

  • Atlasaurus, promoted to release status on August 16th, 2024.
  • DeltaFPS, promoted to release status (and thus superseding Atlasaurus) on September 17th, 2024.
  • ExtraFS, a new viewer that will be issued as a release candidate viewer in the near future.

Once ExtraFPS reaches at least RC status, work will commence on resuming the normal follow of maintenance update viewers, etc., as per the more usual flow of viewer updates.

  • The first maintenance RC to be issued will likely include contributions to help with Linux support in the viewer.
  • It will also likely also include a round of further “post-PBR” performance / aesthetic improvements.

WebRTC Status

[Video 3:10-5:30]

Summary

  • A new project intended to move Second Life away from reliance on the Vivox voice service and plug-in, and to using the WebRTC communications protocol (RTC=”real-time communication”). Roxie Linden is leading this work.
  • Key benefits:
    • WebRTC supports a wide range of real-time communications tools in common use (e.g. Google Meet), supporting audio, video and data communications, and is thus something of a “standard” approach.
    • Offers a good range of features: automatic echo cancellation, better noise cancellation and automatic gain control, much improved audio sampling rates for improved audio quality.
    • Opens the door to features and capabilities to voice services which could not be implemented whilst using Vivox.

Status

  • WebRTC is now fully supported in the official viewer.
  • Back-end deployment – WebRTC support is available on the following regions Pop Rock RC, comprising: WebRTC Voice 1, WebRTC Voice 2, WebRTC Voice 3 and WebRTC Voice 4.
  • Not that during the transitional period of moving from Vivox to WebRTC, there is no bridging between WebRTC peer-to-peer  / ad-hoc and Vivox.
  • There will be an updated Echo Island specifically for WebRTC, which will be be available soon.

Graphics Team Work

Performance / Aesthetics Improvements

[Video: 7:40-14:39]

  • DeltaFPS has a major change to the texture streaming system utilising the GPU:
    • Until now, the approach has been to drop the texture resolution down to a very low resolution (often causing a texture to blur on-screen) and then use the CPU to bring it back up to the appropriate resolution for display.
    • With DeltaFPS and going forward, the GPU is used to generate a copy of the texture at the appropriate resolution for display, and this is then used in rendering, with the higher-resolution version then discarded.
    • The overall results of this is a) there should be a lot less visible blurring of textures as they are loaded; b) the CPU load should be reduced; c) texture loading should be a lot smoother and faster.
  • The upcoming ExtraFPS viewer includes texture rendering improvements for rigged attachments:
    • Currently the viewer  does not have an clear idea as to the size of a rigged attachment, other than it being possibly as big as the avatar, so all attachments essentially get the same texture resolution no matter how small there actually are, which can impact performance.
    • With ExtraFPS the texture resolutions for attachments will be more correctly calculated by their size, reducing the texture rendering overheads (e.g. rather than the texture for buttons on a jacket being loaded at its full 2K resolution, a much lower resolution sample for the texture is used unless the camera is zoomed right in on a single button, when higher resolution are used until zoomed out again).
    • This should mean that general viewer performance in crowds of avatars is improved, as the viewer isn’t trying to load high-resolution textures across every attachment in its view.
    • Note: this change is purely with regards to attachment textures, it does not change attachment LODs.
  • Anti-Aliasing:
    • ExtraFPS will support Subpixel Morphological Anti-Aliasing (SMAA).
    • In addition, as as per the previous CCUG meeting, Rye Cogtail from the Alchemy team is planning (or already has) submitted contribution to improve the FXAA code for inclusion in the ExtraFPS viewer.
    • Those requiring more insight into anti-aliasing and the various types of AA, including FXAA and SMAA, can find out more in What Is Anti-Aliasing? TAA, FXAA, DLAA And More Explained, via Digitaltrends.
  • Tone mapping:
    • The viewer update after ExtraFPS should include the Khronos Neutral tone mapper (another code contribution by Rye Cogtail), which should improve overall ambient lighting in SL.
    • To help with this, the viewer will include additional user controls. During the previous CCUG meeting, these were described as a combo box and a slider within the Advanced Graphics settings, together with a new new control – Tone Mapping Strength – to alter the linear alpha colour.
  • Linear alpha blending:
    • Again, as per the previous CCUG meeting, in order for PBR lighting to render anywhere close to correctly, alpha blending had to be switched from SRGB to linear colour space. This can cause some older content using Blinn-Phong, to look either more opaque or more transparent than in did pre-PBR.
    • A fix for this giving people the ability to adjust the alpha/gamma on per texture entry for the object (including no mod items) is in development, and will likely surface in the viewer after ExtraFPS.

Linden Water

[Video: 11:52-12:40]

  • Linden Water reflections have been reduced in quality with PBR. Geenz linden is experimenting with using elements of the mirror reflection code to try an improve them, but was not at the meeting to provide and update.
  • This work is also not a current priority, as Geenz is focused on the performance improvements work.
  • Adjusting screen space reflections (SSR) to correct the issue is not an option as “SSR has it own bunch of problems”.

PBR Terrain Work

[Video:39:34-41:44]

  • Texture transforms (as a subset of the KHR texture transform) for applying scale, offset and rotation to any one of the four PBR terrain materials, are in development for the viewer, and are currently behind a feature flag and is awaiting further work on the server-side, which is currently in a very preliminary state.
  • The server support is available on Aditi (the Beta grid), those wishing to test it should contact Cosmic Linden.
  • In addition, an LSL API for manipulating PBR terrain materials has been requested, but this is not something that is currently being worked upon.

In Brief

  • [Video: 14:48-17:18] Will GLTF mesh uploads address the issues of random linkset ordering (i.e. currently, when uploading a multi-object .DAE file, it is turned into a linkset with random ordering, so the root object can never be know until post-upload)?
    • Yes. What should happen is whatever the hierarchy is used within Blender (or similar glTF-compliant mesh modelling tool us used) should be reflected in SL after upload.
    • The basic interoperability between Blender and SL can be found here in the Blender documentation, although note that LL are not going to support extensions like Clearcoat, Sheen and Anisotropy with the initial release.
  • [Video: 18:25-30:15] In-world build tools:
    • As a part of the upcoming glTF scene import support, the in-world build tools will be given the ability to edit such scenes (subject to permissions). These will likely take the form of a Scene Explorer and Scene Management tools.
    • LL has had internal discussions on a “simplified editor for decorating houses, etc.”, and feedback has been requested as to what kind of improvements to the existing in-viewer toolset / additional tools people would like to see.
    • This sparked a brief conversation on possible improvements to the build tools / options, together with a discussion on the growing complexity of wearable layers (due to creators effectively “splitting off” face !skins” into layers, which can cause issues with the ordering of layers, and the ability to “lock” the ordering of specific items in a layer class  – e.g. the “face tattoo” should always be “below” any “make-up” tatt0o, etc.) .
    • Please refer to the video for more.
  • [Video: 30:35-36:20] A general discussion on getting started on avatar rigging and animation + suggested resources (e.g. AvaStar, AvaStar discord channel, Bento Buddy; making the avatar UV files, etc., more accessible via secondlife.com rather than being buried in the SL Wiki) – again please refer to the video.
  • [Video: 36:25-38:32 and 57:39-end] Generative AI and SL content creation:
    • Some basic internal experimentation has been carried out with meshy.ai. It is described as “compelling” in terms of content creation, but “definitively cost prohibitive to host such a thing”.
    • As such LL are brainstorming how they might interact with such a tool from SL, should they opt to go that particular route.
    • In addition, other AI tools are being speculatively looked at as well.
    • Please refer to the video for more.
  • [Video: 45:59-49:50] a request for additional LSL functions llGetSTPos and / or llGetUVPos get a world positioning from a texture coordinate. The short answer was no, and for a combination of reasons, but might be something for the upcoming viewer-side Luau scripting. Please refer to the video.
  • [Video 50:36-57:29] General discussion on the feedback portal, feature requests, duplication of requests etc.

Next Meeting

Footnotes

† 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.

2024 week #36: SL CCUG summary: viewer performance and aesthetics

Goblins Knob, August 2024 – 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,  September 5th, 2024.

The meeting was also livesteamed on You Tube by the Lab. The video is embedded at the end of this summary, my thanks to the Lab for providing it.

Table of Contents

Meeting Purpose

  • The CCUG meeting is for discussion of work related to content creation in Second Life, including current and upcoming LL projects, and encompasses requests or comments from the community, together with related viewer development work. This meeting is held on alternate Thursdays at Hippotropolis.
  • Meeting dates and times are recorded in the SL Public Calendar, and they re conducted in a mix of Voice and text chat.
  • The notes herein are a summary of topics discussed and are not intended to be a full transcript of the meeting.

Official Viewers Status

  • Release viewer: version 7.1.9.10515727195, formerly the Atlasaurus RC (object take options; improved MOAP URL handling) promoted August 26.
  • Release channel cohorts:
    • DeltaFPS RC, version 7.1.10.10708851543, updated September 5.
      • Performance boosts. Memory management has been optimized and users will experience a higher FPS across various systems. A comprehensive range of bug fixes are also provided. This includes better PBR material handling and resolving frequent crashes. See the release notes for more.
      • UI for scheduling region restarts now available via a new button located in the Region/Estate floater. (Note: there is currently an issue with scheduled region restarts working correctly and a fix is due to come in the next server release).

Viewer Performance – Priorities

[Video 1:15-3:03]

  • The performance setbacks between the original PBR viewer release (7.1.6) and the Graphics Featurettes viewer (7.1.8), and which particularly negatively hit the Firestorm PBR release were again covered (for additional content, see my August 30th TPVD meeting summary).
  • This has resulted in a “significant portion” of the viewer development work being focused on recovering performance and rectifying the underpinning bugs and issues – some of which are not specific to the PBR implementation itself. Some of this work has been surfaced in the DeltaFPS viewer, but more is to come.
  • The above work also folds into it various fixes for crashes and bugs and a number of Visual Aesthetics (as in how SL looks – see below).
  • This work will impact other areas of viewer work, so glTF projects like the PBR Terrain Painting and Transmission / IOR work are going to be pushed back somewhat, as is work on the viewer-side implementation of Laua scripting support. However, all of these work is still on the roadmap, just delayed.
  • [Video: 8:24-8:56] Cosmic Linden has been working on an improvement to avatar loading to assist with performance improvements, and this has been pushed to the DeltaFPS RC viewer, together with working on bug fixes.
  • [Video: 9:00-9:54] Runitai re-iterated that the Graphics Featurette viewer introduced the major performance hits (some of which are related to bounding box management and memory management, the the TPVD notes linked-to above), and DeltaFPS sees a good improvement in performance over Graphics Featurettes, and the viewer in development (“ExtraFPS) that will follow DeltaFPS should see performance return to levels seen with the initial PBR release.
  • [Video: 45:46-46:36] Which is not to say there are not additional PBR-related performance problems – such as those tied to specific GPU such as the Nividia GT1030 2Gb. These are also the subject of fixes being implemented in either the DeltaFPS viewer or the upcoming ExtraFPS viewer that will follow it.

Viewer Aesthetic Updates

[Video: 4:54-8:10]

  • Linear alpha blending: in order for PBR lighting to render anywhere close to correctly, alpha blending has to be switched from SRGB to linear colour space. This can cause some older content using Blinn-Phong to look either more opaque or more transparent than in did pre-PBR.
    • The fix for this will likely be to add the ability for people to set and alpha/gamma ramp on an item, which can be modified per texture entry, adjusting how transparent the item is on a curve.
      • This should help with a range of issues – particularly those associated with pre-PBR hair, as has been noted by an number of users.
      • To help with this, the new alpha/gamma ramp value will still be adjustable even if the content is No Mod, so as to allow users to adjust legacy content affected by the issue, rather than having to wait for  fixes from content creators.
    • This fix will hopefully follow in the ExtraFPS viewer after DeltaFPS, but in the meantime will be made available in a viewer build available through the Content Creation Discord group‡ for those wishing to test it once the initial work has been completed.
    • Runitai Linden also indicated that as an extension to this work, LL might be able to find a way to apply the adjustment automatically, rather than people having to manually set it, but also noted any automatic solution would be “hard”.
  • Auto-exposure: LL is looking to add controls for dynamic exposure (speed of transition, range, ability to turn off / on). These options will be made available via the Advanced Graphics floater, and maybe / someday via the the sky settings floaters.
  • [Video: 10:03 -10:50] Anti-aliasing: there has been negative feedback from those who used to run the viewer with Advanced Graphics Model (ALM) disabled and who are forced to have it enabled all the time as a part of the PBR rendering, don’t like the look of Fast Approximate Anti-Aliasing (FXAA) as used in the viewer, so LL are adding support for Subpixel Morphological Anti-Aliasing (SMAA).
    • In addition, Rye Cogtail from the Alchemy team did a pass on the FXAA code and found it was not working as well as it should be.
    • Updates to FXAA and the addition to SMAA will be appearing in the viewer to follow DeltaFPS.
    • Those requiring more insight into anti-aliasing and the various types of AA, including FXAA and SMAA, can find out more in What Is Anti-Aliasing? TAA, FXAA, DLAA And More Explained, via Digitaltrends.
  • Work is also being put into smoothing the problems created by switching from 8-bit colour precision to 16-bit float colour precision (which can be the cause of bugs wherein you go somewhere in SL and everything glitches to black or solid white). This work should surface through DeltaFPS.
  • [Video: 11:05-11:45] The Sun is unrealistically dim. LL are considering adding a specific Sun intensity multiplier to Sky settings.
    • As a temporary fix, and whilst not specifically addressing the sun issue, the overall brightness in a scene can be adjusted via very small tweaks to the HDR slider in the Personal Lighting floater.
  • [Video: 49:16-56:05] Tone mapping: Rye Cogtail from the Alchemy team has contributed the Khronos Neutral tone mapper for inclusion into the viewer.
    • This is not as dark as the current default in the viewer, and initially will use debugs to select which tone mapper is used (as the existing mapper will remain).
    • LL are looking to make this the default for tone mapping (subject to the outcome of testing), and the mapper is currently in the viewer Develop branch for TPV / viewer builders to take a look at.
    • When implemented the controls will likely be in the Advanced Graphics settings as a combo box and a slider. The control may also in the future be added to the sky settings.
    • In addition, there will be a new control – Tone Mapping Strength – to alter the linear alpha colour.
    • A key point to content creators on this is: you should not put the tone mapper in your textures (e.g. via the options available in PhotoShop when exporting textures) by bumping saturation, etc., and baking the tone mapper into the texture (as well and not baking things like reflections into textures).
    • WYSIWYG will still be possible providing creators select a tone mapper in SL that matches the mapper in their tool of choice or by using no post and working in linear + using the HDRI Preview option (Develop(er) > Render Tests) and use the same HDRI in SL as your content creation tool.

WebRTC

[Video 3:05-4:26]

Summary

  • A new project intended to move Second Life away from reliance on the Vivox voice service and plug-in, and to using the WebRTC communications protocol (RTC=”real-time communication”). Roxie Linden is leading this work.
  • Key benefits:
    • WebRTC supports a wide range of real-time communications tools in common use (e.g. Google Meet), supporting audio, video and data communications, and is thus something of a “standard” approach.
    • Offers a good range of features: automatic echo cancellation, better noise cancellation and automatic gain control, much improved audio sampling rates for improved audio quality.
    • Opens the door to features and capabilities to voice services which could not be implemented whilst using Vivox.

Status

  • WebRTC is now fully supported in the official viewer.
  • The back-end deployment on the simulator servers is progressing (2 release candidate channels for simulator servers – BlueSteel and Ferrari – should now have WebRTC support), but this is not yet universal across the entire grid, and will take at least another 2 weeks to be grid-wide.
  • Throwing the switch from running Vivox on the back-end to running WebRTC only will be dependent upon third-party viewers implementing and releasing the viewer-side WebRTC library.
  • In the meantime, peer-to-peer and ad-hoc WebRTC can be tested on the WebRTC regions of WebRTC Voice 1, WebRTC Voice 2, WebRTC Voice 3 and WebRTC Voice 4. However, there is no bridging between WebRTC peer-to-peer  / ad-hoc and Vivox.

In Brief

  • [Video 17:06-25:06] A discussion on Marvelous Designer (MD) cloth simulation within Second Life. This was done with Sansar, allowing clothing to be properly draped over an avatar body, and allowed for adjustments to be made prior to the finished results being baked-out (with automatic hidden surface removal).
    • Second Life utilises a different data modern to Sansar which introduces a range of complexities that would require significant re-working of how clothing  / mesh data is management, a potential re-writing of the entire Bake Service and other factors, all of which make MD integration a challenge.
    • Further complexities are added by the fact that unlike Sansar, which utilised a single avatar body type, SL has a plethora of bodies, and so using the cloth simulation against different body types (whether by creators or users) gets considerably more complicated, as do the requirements for data handling / storage and the costs involved.
    • As such, whilst these issues are not necessarily complete barriers to integration, they do mean that there are significant considerations involved, as well as significant changes to SL that would have to be made. Thus, it is not currently on the roadmap or under current consideration.
    • Please refer to the video for further details.
  • [Video: 25:16-26:12] 2K texture support for Bakes on Mesh – while there was no precisely update available:
    •  It is believed the majority of the work in enabling 2K Bakes on Mesh is now done in terms of getting an early prototype put together on one of the Lab’s own development grids.
    • However, there is currently no public availability for the capability, not is there any release schedule. The work remaining “on-going”.
  • [Video: 26:31-28:50] A brief discussion on creating content with both Blinn-Phong and PBR materials and some of the issues that can occur + some of the slight eccentricities (e.g. objects with both appearing to turn metallic when edited).
    • It was noted that as Blinn-Phong is still supported, creators can continue to use that in preference to PBR materials, although as time goes on the underpinning tools (like Blender) might move more and more into the glTF support arena and make it easier to produce glTF compliant content which can be used in SL.
  • [Video: 29:14-30:57] Transmission and IoR: these are being implemented against the glTF extensions approved by Khronos. This work is focused on implementing them against the prototype glTF implementation, then it they pass that, the focus will move to integration with SL and how they work with glTF materials assets and how to apply them to mesh and prim faces.
    • However, as noted above, this work is currently paused pending completion of the performance improvements work, and is unlikely to resume until after the viewer following Delta FPS has surfaced.
    • It was also noted that it will still be a while before LL are confident enough with both Transmission and IoR to allow either to be added to content be users, even on a test basis.
  • [Video: 40:22-41:48] The question was asked that, when SL gets glTF morph targets, if it would be possible to swap out vertex maps as well to change vertex weights so that it might be possible to deform clothing using the morph targets via script, then change the rigging, so an to allow one-size-fits-all clothing.
    • Runitai Linden noted that LL are aiming to hit all of the “musts” and “shoulds” in the glTF  specification. For morph targets, this means effectively having three channels per mesh that can be modified with the morph slider, thus limiting what could be done.
  • [Video: 42:10-44:55] llSetAlpha / llSetColor, etc: LL is planning on making these functions implicitly access the PBR equivalents when a PBR material is present. However, this is hampered by the fact a good proportion of users are still on non-PBR viewers, so “there’s not good answer to which channel it should modify.” This means that currently, the easiest thing it to leave the functions “as is” until sufficient enough users are on viewer with PBR support.
    • This does not mean non-PBR content will no longer be a thing; just that creators should not have to make a non-PBR version of their content because there are people still using a non-PBR capable viewer.
  • The last few minutes of the meeting are spent discussing what additional elements of the glTF specification have yet to be worked on.

Next Meeting

Footnotes

† 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.

‡ Due to an express request from Linden Lab, I am unable to publish information on how to join the Content Creation Discord group. If you are a creator and are not a member, please contact Vir Linden via notecard or IM.

2024 week #33: SL CCUG summary

Grauland / Corsair Island, July 2024 – 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, August 15th, 2024.

Meeting Purpose

  • The CCUG meeting is for discussion of work related to content creation in Second Life, including current and upcoming LL projects, and encompasses requests or comments from the community, together with related viewer development work. This meeting is held on alternate Thursdays at Hippotropolis.
  • Meeting dates and times are recorded in the SL Public Calendar, and they re conducted in a mix of Voice and text chat.
  • The notes herein are a summary of topics discussed and are not intended to be a full transcript of the meeting.

Official Viewers Status

The Atlasaurus RC (object take options; improved MOAP URL handling) updated to version 7.1.9.10326512121,  on August 14th.

The other viewers in the pipeline remain as:

  • Release viewer: version 7.1.8.9375512768, formerly the Graphics Featurettes RC viewer dated June 5 and promoted June 10th.
  • Release channel cohorts:

Upcoming Releases – Change In Priority

As a result of PBR-related issues (see the section Performance Issues, below), the priority of upcoming viewer releases has changed.

  • The next planned viewer promotion was to have been the dedicated WebRTC Voice viewer.
  • The plan now is to prioritise a “more ambitious” viewer which will include the WebRTC updates and a number of high-level bug fixes related to performance (e.g.  a major vertex buffer fix, which although specifically targeted at Mac users, could help others on systems with integrated graphics).

Graphics / glTF

PBR Terrain Painting – Cosmic Linden

Summary
  • An in-development project. Current intent:
    • Provide a means to support the four PBR materials currently used in SL for “terrain painting”.
    • Will allow materials to be defined in their X,Y co-ordinates within a region by using a paint map, rather than having them defined by elevation defined in a height map. This will allow where grass or rock or stones or dirt, etc., appear within the region. providing much more flexibility in how terrain appears / changes.
    • Terrain painting will use the same permissions as terrain texturing (so if you have terraforming permissions, then tertian paining is possible; if you have the appropriate region permissions, you can define the PBR materials for the region.
    • Region owners / estate managers will have the ability to select whether the texture / heightmap is available in a region or whether the region uses terrain painting via a toggle switch in the Region floater. If Terrain painting is enabled at the region level, parcel holders (if I am understanding correctly) will be able to opt out / in.
  • Other points of note:
    • LL prefer to limit terrain painting to the four available slots at region revel, rather than allowing fully customisable swatches / slots at parcel level, as the latter presents “non-trivial issues” for terrain texture handling /loading.
    • Terrain painting will require a new entity to be introduced. Exactly what form this will take is still being discussed internally; it is unlikely to be a new asset type.
  • Much longer term options being considered for this capability might be to:
    • Allow prims to act as part of the terrain, inheriting the materials of the terrain, whilst still allowing the prim to be sized and shaped.
    • Perhaps allow the terrain within a region to be replaced by “something” else created externally to SL and then imported.
    • Neither of these ideas are currently being pursued beyond possible ideas / options.
Status
  • Cosmic believe she is getting close – perhaps another couple of weeks – to having an initial viewer build with the capability.
  • This initial build will allow terrain painting purely on the viewer-side; there will be no support for saving changes on the simulator; this will come as the work continues to be developed.

Transmission / IOR – Geenz Linden

  • Transmission and Index of Reflection (IOR)  will provide:
    • Both refraction and “blurry” refraction suitable for things like frosted glass surfaces.
    • Dispersion, allowing chromatic aberration, allowing the RGB channels to “separate out” based on a certain factor.
    • Volume, allowing an object surface to be tinted at different surface thicknesses .
    • Geenz is currently wrapping this work to get it into the Develop branch of the viewer following an internal demonstration at the Lab.

General Discussion

Performance Issues

  • It’s been confirmed that the potential for performance drops was missed within the code Firestorm took to integrate into their PBR viewer offering, and given they have the largest share of users (particularly those on low-to-mid range systems – e.g. those with 16Gb of RAM or less, and mid-to-low spec GPUs or with integrated graphics), their users have been the hardest hit with performance issues.
    • As a result, Linden Lab is now working with Firestorm to resolve the current issues.
    • As noted above, Linden Lab is now working to prioritise the release of a viewer with a number of fixes and updates aimed at improving / restoring viewer performance.
    • In the interim, the recommendation is for anyone experiencing severe performance issues to roll back to a pre-PBR viewer release.
    • Further, given that fixes beyond those currently being prioritised by LL will take time to surface, and the fact that there will continue to be systems that struggle with PBR, Firestorm has stated that version 6.6.17 of their viewer (the last pre-PBR release) will not be blocked per standard policy, but will remain available on as “as is” basis (e.g. not subject to bug maintenance or update with new features).
  • Fixes LL are looking to get out after the “prioritised” viewer has been released include:
    • Addressing  issues with the texture pipeline.
    • Fixing an issue whereby viewers on systems without dedicated video memory continually allocating available system memory to textures until all available system memory is consumed and the system suffers “performance death” until restarted.
    • A fix from the Alchemy team for an issue wherein if Mirrors are disabled in a viewer session, they continue using system resources until the viewer is restarted.
  • There will be “some form of communications coming out soon” to help inform people who are having a negative experience with PBR about what is going on to help alleviate issues.

In Brief

  • As far as enhancing rendering / shaders is concerned, the focus currently is on getting a working glTF scene implementation first, then working out what to backport to materials in inventory for applying to prims / non-glTF meshes. The will provide a good frame of reference when backporting materials to legacy objects and help maintain a consistency of appearance.
  • The meeting was overtaking by an extended discussion / diagnosis of a issue with hair which is becoming increasingly notices (hair appearing to “clump” or get blurred which does not appear to be directly related to colour alpha blending).
    • The problem is in part exacerbated by the fact the most SL hair is No Mod; so issues cannot be easily user-addressed.
    • No clear solution to this was presented, and the conversation is liable to continue, so will update if / when a way forward becomes clearer.
    • One idea floated, but will require a lot more internal investigation before LL move one way or the other, is to potentially add flags that will allow certain parameters within No Mod objects to be modified where it makes sense for them to be modifiable.
    • Expect further discussion on this.

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.

2024 week #29: SL CCUG summary

Nong Han Kumphawapi, June 2024 – 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 18th, 2024.

Meeting Purpose

  • The CCUG meeting is for discussion of work related to content creation in Second Life, including current and upcoming LL projects, and encompasses requests or comments from the community, together with related viewer development work. This meeting is held on alternate Thursdays at Hippotropolis.
  • In regards to meetings:
    • Dates and times are recorded in the SL Public Calendar.
    • Commence at 13:00 SLT on their respective dates.
    • Are conducted in a mix of Voice and text chat.
    • Are open to all with an interest in content creation.
  • The notes herein are a summary of topics discussed and are not intended to be a full transcript of the meeting.

Official Viewers Status

  • Release viewer: version 7.1.8.9375512768, formerly the Graphics Featurettes RC viewer dated June 5 and promoted June 10th.
  • Release channel cohorts (please see my notes on manually installing RC viewer versions if you wish to install any release candidate(s) yourself).
    • WebRTC Voice RC, version 7.1.9.9688089989, July 1.
    • Atlasaurus RC (object take options; improved MOAP URL handling), version 7.1.9.9620320242, June 27.
    • Maintenance B RC (usability updates / imposter changes) 7.1.9.9555137545, June 21.
    • Maintenance C RC (reset skeleton in all viewers), version 7.1.9.9469671545, June 14.
  • Project viewers:
    • None.

WebRTC Voice Update

Not strictly a Content Creation tool / subject, but of import to SL as a whole.

Summary

  • A project intended to move Second Life away from reliance on the Vivox voice service and plug-in, and to using the WebRTC communications protocol (RTC=”real-time communication”). Roxie Linden is leading this work.
  • Key benefits:
    • WebRTC supports a wide range of real-time communications tools in common use (e.g. Google Meet), supporting audio, video and data communications, and is thus something of a “standard” approach.
    • Offers a good range of features: automatic echo cancellation, better noise cancellation and automatic gain control, much improved audio sampling rates for improved audio quality.
    • Opens the door to features and capabilities to voice services which could not be implemented whilst using Vivox.
  • In addition:
    • LL are are of some of the security concerns around WebRTC voice (e.g. risk of eavesdropping, exposure of users’ IP addresses, etc), and is actively working to block these through the use of an internal proxy service.
    • LL will be looking to Linux devs to help give feedback on how well WebRTC is working on their Linux viewers
  • Feature requests for WebRTC should be made via the WebRTC board on the SL Feedback Portal.

Status

  • There is a Release Candidate viewer available on the Alternate Viewers page. Thus is expected to be the next viewer to be promoted to de facto release status.
    • This promotion is liable to occur ahead of the planned simulator deployments (see below), allowing time for TPVs to adopt the code.
  • Currently, LL is looking at August for a potential deployment across all of SL on the server-side.
    • This will follow the usual approach of roll-out to the simulator RC channels first, then to the SLS Main channel.
    • As a result, there will be some short-term issues around peer-to-peer, Group and ad-hoc voice connections between those on regions running the two different voice services (Vivox and WebRTC).
    • Depending on how the deployment goes (e.g. first to a single RC, then multiple RCs, then the SLS Main channel), it is hoped that any such issues will only be for around 2 weeks.
  • Viewers adopting the WebRTC code prior to or during this deployment period will be able to process both WebRTC and Vivox voice, so outside of the possible short-term issues during the back-end deployment mentioned above, voice services should not be interrupted for users.

Graphics / glTF

Transmission / IOR

  • Geenz Linden continues to work on Transmission and Index of Reflection (IOR). This will provide:
    • Both refraction and “blurry” refraction suitable for things like frosted glass surfaces.
    • Dispersion, allowing chromatic aberration, allowing the RGB channels to “separate out” based on a certain factor.
    • Volume, allowing an object surface to be tinted at different surface thicknesses.
  • There are still some bugs to be resolved with this work, after which it will be folded into the main viewer development branch, but is currently tied to the work on mesh import, but may be separated out.

PBR Terrain Painting

  • This is the next planned project for Cosmic Linden, and is in the very early stages of planning, so things are subject to potential change.
  • Currently, the thinking is:
    • The four PBR materials currently used for PBR terrain would remain available for use / painting.
    • The painting element would allow a user to define how these materials are mixed (via a paint map), rather than having to rely purely on the the existing height map.
    • The paint map is likely to initially be on the basis of one blended texture at region level (not parcel), although the resolution of the texture is still TBA at the time of writing.
    • The permissions for terrain painting will be based on ability to edit the height map (if you can alter the latter through the Region settings, then you’ll be able to use the terrain painting capability).
  • This effectively means:
    • Users who have terrain editing permissions will be able to use the existing terrain texture system, using the height map (terrain elevation) to define which textures are visible, and the “blending” between them. or – if provided at the region level – access the PBR terrain paint map and use that to define the terrain (e.g. where grass, dirt, rock, etc., appears),  without having to use terrain elevation changes.
    • Use of the paint map will still be based of the X,Y positioning of terrain (as with the current height map), but all allow for actual blending of materials, rather than just creating transitional noise between textures set for different elevations, as with the height map.
  • Terrain painting will be a significant departure in how terrain texturing has been managed, requiring a new entity to be introduced. This is also still being thought through, but it is unlikely it will be a new asset type stored on the asset servers.
  • LL prefer to limit terrain painting to the four available slots at region revel, rather than allowing fully customisable swatches / slots at parcel level, as the latter presents “non-trivial issues” for terrain texture handling /loading.
  • Two further ideas being discussed in relation to terrain but not on the implementation road map are:
    • Implementing a means by which a prim can act as if it is part of the terrain, and inheriting the materials of the terrain on which it is placed, whilst allowing the geometry of the prim to be still be manipulated.
    • Instead of using terrain, provide a means by which “something else” (something created external to SL and then imported) as terrain. However, it idea is described as “more pie in the sky” thinking.

glTF Scene Import

  • No update, as Runitai Linden is out of the office.

(Non-Ambient) Lighting

  • Punctual lights is a glTF extension that has recently been folded into the main specification, defining the use of lighting sources (house light, table lamps, street lights, etc.).
  • Geenz Linden is working to implement punctual lights, but they will be tied to the node hierarchy for glTF scene imports.
  • Longer term, they hope to use the extension to enable punctual lights to render shadows (so, if your table lamp is a punctual light, it will cast shadows).
    • However, the extension is currently ambiguous as to what parameters should be used to define/ constrain such shadows, so this aspect of the work is liable to take longer to achieve, and may be dependent upon how other companies implement punctual lighting shadows.
    • In the meantime, Geenz does have some ideas on handling shadows from point and spotlights, which might leverage the work done on reflection probes.
  • In discussing the adoption of glTF punctual lighting, Geenz further noted:
    • There are some notable differences between glTF lighting and SL’s physically-based lighting model and also with the capabilities of lighting projectors as they are currently in SL.
    • As such, trying to unify punctual lighting with SL’s existing lighting / projectors could lead to content breakage.
    • Because of this, it is likely that as punctual lighting ins introduced, the existing lighting system will cease to be significantly enhanced, and pretty much left as-is, with the focus shifting to enhancing the punctual lighting system.

General Notes

  • Cosmic has also been completing work on support for PBR terrain texture transforms. This is s subset of the texture manipulation options (scale, offset, rotation, etc.), available with texturing prims, and is per material.
  • A request has been received to get planar face alignment to be functional for PBR, and this is defined as something the Lab wants to resolve “soon”.
  • Order-independent transparency is not something on the current road map, as it is seen as “too performance costly” to implement.
  • There is some potential for performance improvements / optimisations for mirrors.
    • Currently, whilst the mirror surface is planar, the reflection probe generates reflections for a full 180º in front of the mirror, not all of which might be required.
    • It might therefore be possible to adjust this to angles more appropriate for such viewers, making them slightly more performant – but the improvement will not be huge.
    • It should be remembered that mirrors can also be turned off (or have the update rate reduced) through Preferences by those feeling a mirror they are closes to and is active is too big a performance hit.
  • There have been multiple calls for Linden Water to be restored to its pre-PBR looks. Geenz noted that while making improvements to the appearance of Linden Water are not out of the question, the fact that Linden Water is not glTF compliant makes what can be done more difficult.

Next Meeting

† 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.

2024 week #25: SL CCUG summary

Joyful Gardens, June 2024 – 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 20th, 2024.

Meeting Purpose

  • The CCUG meeting is for discussion of work related to content creation in Second Life, including current and upcoming LL projects, and encompasses requests or comments from the community, together with related viewer development work. This meeting is held on alternate Thursdays at Hippotropolis.
  • In regards to meetings:
    • Dates and times are recorded in the SL Public Calendar.
    • Commence at 13:00 SLT on their respective dates.
    • Are conducted in a mix of Voice and text chat.
    • Are open to all with an interest in content creation.
  • The notes herein are a summary of topics discussed and are not intended to be a full transcript of the meeting.

Official Viewers Status

  • Release viewer: version 7.1.8.9375512768, formerly the Graphics Featurettes RC viewer dated June 5 and promoted June 10th.
  • Release channel cohorts:
    • Maintenance C RC (reset skeleton in all viewers), version 7.1.9.9469671545, June 14.
    • Maintenance B RC (usability updates / imposter changes) 7.1.8.9130881608, June 10.
  • Project viewers:

WebRTC Voice Update

Not strictly a Content Creation tool / subject, but of import to SL as a whole.

Summary

  • A project intended to replace the Vivox Voice system with the WebRTC communications protocol (RTC=”real-time communication”).
  • Will see the removal of the SLplugin.EXE from the viewer, to be replaced with a library wrapper within the viewer.
  • Offers much better and more flexible voice support across platforms, with improved capabilities (e.g. automatic echo cancellation, automatic gain control, better noise cancellation) with better audio sampling / quality.
  • Also opens the door to adding new features and capabilities to SL Voice, some of which have been long-requested.
  • Care is being taking to address potential security issues (e.g. preventing eavesdropping, exposing users’ IP address (by using an internal proxy server), etc.).
  • During the transitional period as WebRTC is deployed on the back-end and gradually made available by viewers, support will be provided for both Vivox and WebRTC (i.e. if you are using a viewer using the Vivox plug-in, you will connect to voice via Vivox, and if using a viewer with WebRTC, then that protocol will be used.
  • Both Vivox and WebRTC work together, but their may be some initial limitations / issues until the project is fully deployed and the switch made.
  • Feature requests for WebRTC made via the WebRTC board on the SL Feedback Portal are being evaluated and some are being actioned, together with issues being investigated.

Status

  • There is a Project viewer available on the Alternate Viewers page. Thus is expected to to to Release Candidate status very soon.
  • The server support is currently available on the region WebRTC on the main grid.
  • The focus is currently on getting the viewer code up to release status so it can be adopted by TPVs, with a gradual deployment of the server code, however, it is unlikely the latter will be widely deployed until after the viewer code has been more fully adopted.
  • That said, this is something of a priority project, likely to be fast-tracked as much as possible.

Graphics / glTF

Terrain

  • Cosmic Linden is working on PBR terrain custom repat controls allowing for improved Texel densities to help reduce the “stretching” of textures of elevation changes)  and better support 2K textures.
  • Most of the viewer work for this is now almost complete, but is awaiting simulator-side support on Aditi in order to be offered in a test viewer.
  • There is a more general bug where PBR terrain does not render in planar mirrors, and Cosmic is also working on trying to resolve this issue.
  • PBR Terrain painting: depending on how the above progress, Cosmic hopes to be able to start looking into the potential for PBR terrain painting in the near future. Currently the tentative plan is:
    • To allow land owners to control the mix of the four PBR materials on terrain, rather than the current situation where it’s determined by some elevation weights plus some noise added on top.
    • This capability will potentially be allowed for whoever can edit the terrain heights in a given parcel.

glTF Scene Import

  • Runitai Linden is continuing to work on glTF scene import. The focus remains on the viewer-side code.
    • As previously noted, this allows glTF scenes to be uploaded, tied to an in-world object and previewed in the viewer.
    • The support for this is available on the Rumpus Room regions on Aditi (the Beta Grid).
  • Actual simulator / back-end support for glTF scene will not start to be implemented until after the viewer side of the code is in better shape.
  • The overall goal is to get scene import working with Blender (and in accordance with the glTF specification), and mee the requirements /  guidelines outline in the Blender glTF Imort / Export documentation. The plan is to:
    • Support all of the animation data defined in the document.
    • Support “most” of the materials data in additional to the already supported  metallic roughness & emissive unlit.
  • As this work is still in the prototype phase no decisions have been made regarding the potential Land Impact for scenes or how LI will be calculated. This will come later in the project, once LL have more of a handle on things (upload, streaming, download, runtime cost, etc.).
  • There are also a lot of additional decisions yet to be made regarding this work – the LSL API, avatar limits (which can be attached to an avatar within a scene), all of which mean it will sill be a while before glTF scene imports are ready for any form of testing on the main grid (Agni).

General Notes

  • Runitai Linden is looking at the render pipe and possible optimisations and the potential to improve things like rendering objects, etc. Some of this work is likely to find its way back into production viewers in time.
    • This work also includes refinements to mirrors (e.g. so they get occluded, improvements to the update rate, etc).
  • Geenz Linden continues to work on Transmission and Index of Reflection (IOR), however, as they were out of the office for this meeting, no update was available.
  • Proper support for HDRI skies is being increasingly requested as a result of the Graphics Featurette viewer, and this work may  be accelerated. However, they will require a new asset type.

Next Meeting

† 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.

2024 week #23: SL CCUG and TPVD meetings summary

TheNest : Sunbird, May 2024 – 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 6th, 2024.
  • My audio recording + the video recording by Pantera (embedded at the end of this summary) of the Third-Party Developer meeting (TPVD) held on Friday, June 7th, 2024. My thank to Pantera as always for providing it.

Meetings Purpose

  • The CCUG meeting is for discussion of work related to content creation in Second Life, including current and upcoming LL projects, and encompasses requests or comments from the community, together with related viewer development work. This meeting is held on alternate Thursdays at Hippotropolis.
  • 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 to discuss general viewer development. This meeting is held once a month on a Friday, at 13:00 SLT at the Hippotropolis Theatre.
  • For both meetings: dates and times are recorded in the SL Public Calendar, and they re conducted in a mix of Voice and text chat.
  • The notes herein are a summary of topics discussed and are not intended to be a full transcript of the meeting.

Official Viewers Status

[Video: 0:27-3:03]

  • Release viewer: Maintenance X RC (usability improvements), version 7.1.7.8974243247, dated May 8th  promoted May 13.
  • Release channel cohorts:
    • Materials Featurettes RC viewer, version 7.1.8.9375512768, June 5.
    • Maintenance C RC (reset skeleton in all viewers), version 7.1.7.8820704257, May 6.
    • Maintenance B RC (usability updates / imposter changes), version 7.1.7.8820696922, April 29.
  • Project viewers:

General Viewer Notes (Both Meetings)

  • The latest Graphics Featurettes RC viewer is seen as the last RC update prior to this viewer being promoted, hopefully in week #24 if it passes QA. This will see the official release of Viewer-side setting of PBR materials for terrain; 2K texture upload support; glTF / PBR mirrors.
    • A request has been made to fix an alpha asset mode issue prior to release. This is seen as unlikely, unless QA reject the viewer going to release status.
  • It is anticipated the WebRTC viewer will move from project viewer status to RC viewer status with its next update.
    • The initial RC viewer will support both Vivox Voice and WebRTC, depending on how voice is handled on the back-end for any given region.
    • However, there may be issues when trying to use Voice across different regions / in groups where use of WebRTC and Vivox is mixed.
    • See here for more on the WebRTC project.
  • A planned Maintenance RC viewer (Maint A) is currently pending the resolution of a number of fixes, hence why Maint B and C are currently in the pipeline.

Graphics / glTF

General Notes on glTF / PBR (CCUG Meeting)

  • Cosmic Linden is working on custom repeats for PBR terrain, allowing for higher texel densities to help reduce the “stretching” of textures of elevation changes)  and better support 2K textures.  This work is *not* part of the PBR Terrain updates in the Graphics Featurettes viewer, but will be part of a follow-on set of glTF updates currently contain within a development viewer branch on Github.
    • This branch also includes a improvement specifically for Mac performance related to actions such as editing, moving UI elements around, etc.
  • It has been noted that the current implementation for reading & writing glTF data has some limitations in terms of SL, so there is some internal work to re-write it to better fit the SL systems / services. Part of this work means Geenz is re-writing some of the work on glTF transmission to better fit the SL asset loader.
    • This work will also assist the development work going into the glTF scene import project.

glTF Scene Import (TPVD Meeting)

[Video: 5:18-18:10]

  • Recap:
    • Development of the ability to import glTF scenes (objects, materials, animations, etc.), directly from Blender to Second Life. This includes a node hierarchy which will allow some degree of editing / modification of scene elements once imported. There will also be the ability to export scenes back to Blender for more extensive update by the creator. Both of these latter points (editing / export) will be subject to the SL permissions system.
    • Scenes are liable to use the MSFT glTF extension for Level of Detail (LOD), as this allows LODs to be set per node within a scene, providing more intuitive / consistent LOD switching management (based on screen coverage).
    • There will be constraints placed on scene imports (e.g. will not be able to have a scene which exceeds the capacity of a region; scenes will not be able to span more than one region (so as to avoid issues with physics, etc.); and so on).
  • Status:
    • Rapid prototyping of the ability to upload and preview glTF scenes is progressing. This can be tested via prototype viewer made available through the Content Creator Discord channel (apologies, but due to a request from Linden Lab I cannot provide details on how to join this channel, outside of contact Vir Linden) and on the glTF development / test regions on Aditi.
    • The functionality currently remains that of being able to preview a scene – there is no actual simulator-side representation of the scene (e.g. it is viewer-side only, so only visible in the viewer used for the preview). Obviously, this will change as the work progresses.
    • For those wishing to test the capability, note that there is an known issue with large file uploads for glTF scenes failing. This is being investigated by Pepper Linden.
    • The work is now within the general development branch of the graphics / glTF work.
    • Limits (avatar limits, land impact, number of vertices, faces, etc), will be defined in detail as the project develops, with any defined as a “must” within the glTF specification being a hard line, those defined as a “should” being considered as the baseline.
  • [Video: 20:50-21:55] Transitioning to glTF scene support (when it ready for more widespread availability) will be in a manner akin to the introduction of mesh support back in 2011/12: those running viewers that have not updated to the code supporting glTF scene rendering will not see any scenes they enter, but will instead see “something akin to a little chiclet of a sculpt”.

 

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.