2022 TPVD meetings week #27

Village of Ahiru, April 2022 – blog post

The following notes were taken from the video recording by Pantera (embedded at the end of this piece, my thanks to her as always for recording the meetings) of the Third-Party Viewer Developer (TPVD) meeting on Friday, July 8th, 2022 at 13:00  SLT.

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

Available Viewers

[Video: 0:08-2:30]

  • Maintenance Optimisations RC version issued on Thursday, July 7th, This viewer:
    • Incorporates the Build Copy / Paste capability (also found in the Copy / Paste Project viewer).
    • Assorted UI improvements / clean-up (e.g. such as with the Build Edit folder).
    • Apparently includes the ability to hide the World Map Legend
    • Is likely to be fast-tracked to release status “in the next couple of weeks”.

The rest of the current crop of official viewers remains as follows:

  • Release viewer: version – formerly the Maintenance M(akgeolli) RC viewer, promoted June 29th.
  • Release channel cohorts:
    • Nomayo Maintenance RC (Maintenance N) viewer, version, June 1.
  • Project viewers:
    • Performance Floater project viewer, version, May 10.
    • Mesh Optimizer project viewer, version, dated January 5, issued after January 10.
    • Legacy Profiles viewer, version, dated October 26, 2020.

General Viewer Notes

  • Following the promotion of the Maintenance Optimisation RC viewer, the focus will be on the Legacy Profile viewer to get that to RC status.
  • There are some crash-on-exit issues with the official viewer the Lab is attempting to fix.

RequestImage UDP Message

[Video: 2:50-4:44]

  • Since 2015, assets have been delivered to the viewer via HTTP using CDN capabilities.
  • However, the RequestImage UDP messaging capability for delivering textures has remained in place on the simulator, and it has been noted that some viewers continue to use it directly or as a fallback, requiring the simulator to carry out checks with the CDN service when textures cannot be found.
  • LL would like to completely remove all reliance on the simulator for texture fetching / checking, and have everything via HTTP and the viewer / asset system / CDN.
  • To this end the RequestImage message will be deprecated and removed “very soon”.
  • Viewer that us (or actually rely on) it are therefore asked to ensure they only use the HTTP route.
  • [Video: 6:55-7:24] Going forward, the simulator code will track deprecated messaging that TPVs may or may not be using, allowing LL to them TPV where such message paths are still being used and which have been earmarked for removal from the simulator.

In Brief

  • [Video 5:42-6:25] A bug introduced into one of the upload paths this week resulted in the CDN service delivering PNG data in place of JPEG2000 (primarily for profile pictures), which resulted in some viewers experiencing clogging of their texture processing pipes. This issue has now been fixed.
  • As a part of general discussions, Alexa Linden indicated she’d like to start reducing the time it takes for code contributions from TPVs and third-party developers to be integrated into the core SL viewer code. This includes receiving reminders about old code contributions that may have fallen by the wayside.

Mojo’s Wishlist Ideas

[Video: 8:21-pretty much to the end]

There are not currently project, by Mojo Linden continues to seek feedback on them.

  • He reiterated the idea mentioned at the week #27 CCUG meeting of using low-poly bakes to help “increase” visibility across Mainland regions to try an instil a greater sense of scale of the continents.
    • Mojo noted this could perhaps leverage the Map service in some manner (a problem being that the Map service currently doesn’t know about mesh geometry).
    • In raising the Map service, he also noted LL is also aware of the issues within that service that need to be addressed, and that this is really down to determining the optimum time to doe so, rather than having technical reasons why it cannot be improved.
  • He floated the idea of introducing some means of hidden surface removal, particularly for avatars to remove the need for alpha layers, etc., to hide body parts, the idea being to reduce the complexity of avatar rendering.
    • There are edge cases with this – such as an item of clothing with both an “outside” and “inside” texture (such as a lining on a jacket) – what happens to the “inside” texture, does it get culled?
  • He also floated the idea of fully baking the avatar’s appearance such that avatar and clothing are baked as one as a final step of changing appearance, reducing the overall render cost and complexity.
    • It is not clear if this would allow avatar appearance to be changed in “real time” or not (e.g. Sansar bakes avatars, but does so using a separate environment in which to modify an avatar’s appearance).
    • The fact that rigging can be variable between clothing and bodies, etc., might also need to be worked around, as baking would likely require committing to a single set of weights.
  • It is possible the use of baked avatars would allow for an alternative form of avatar impostor for use within large events with a lot of avatars in a single space, the bakes – whilst lower poly than would be the case in less-crowded environments – offering a better visual result than the current impostor system.
  • A lot of technical questions were through out by those at the meeting as to how LL see baked avatars, etc., “working”. However, as Mojo notes, he’s putting ideas forward to see if there is interest in pursuing them rather than presenting any actual projects; as such answers would be sought collaboratively if it were deemed something that should be looked at more formally / in-depth.

Date of Next Meeting

Friday, August 5th, 2022.

2022 CCUG meeting week #27 summary: materials, avatars, general notes

Tilheyra, May 2022 – blog post

The following notes were taken from my audio recording and chat log of the Content Creation User Group (CCUG) meeting held on Thursday, July 7th 2022 at 13:00 SLT. These meetings are chaired by Vir Linden, and their dates and times can be obtained from the SL Public Calendar.

This is a summary of the key topics discussed in the meeting and is not intended to be a full transcript.

Materials and PBR Work

Please also see previous CCUG meeting summaries for further background on this project.

Outline of Work

  • Work on an implementation of reflection probes which can be used both with PDR shading and with legacy content.
    • The overall aim of this work is to provide a means to support more physically accurate reflections in SL than can be currently generated (seen as a requirement for PBR support).
    • It applies to both PBR generated content, once available, and to legacy content.
  • Creating a materials type with an associated inventory asset. This will initially comprise the ability to copy a texture entry (with its specific parameters) to inventory, to be followed by initial work to work implement a PBR graphics pipe in the viewer.
  • Normals will likely be MikkTSpace, as per the glTF specification, but work needs to be done to see if supporting this could lead to clashes with the current normal maps rendering. This does mean that current Normal maps will not work on PBR materials.
  • The initially supported capabilities are:
    • RGB albedo + transparency.
    • RGB Occlusion/Roughness/Metalness: R = occlusion, G = roughness; Blue = metalness.
    • RGB emissive.
    • RGB normal (- alpha).
    • Double-sized supported (disables backface calling before issuing the draw call).
    • Two-sided lighting (so if the back of a triangle is visible, it flips the normal around).
  • In addition:
    • There will be an ability to “preview” materials on an item within your own viewer (similar in nature to Local Textures) before actually uploading them.
    • LSL support is still being defined, but should at least allow individual texture UUIDs to be replaced under script control.
    • The approach being taken is to may the system extensible so that further capabilities / plug-ins / options can be added with relative ease in the future.
    • However, Displacement maps will not initially be supported due to not being defined in the core of glTF 2.0; nor will any extensions that are not adopted into the core glTF standard (either glTF 2.0 or 3.0).

Current Progress – PBR Rendering

  • Progress has been made on both the back-end and within the viewer, the latter elements being focused on hooking up EEP to work with PBR.
  • There is currently an issue with Mac OSX due to the cube map being used at present, but this will be addressed.
  • Given the work is still on-going, there is nothing as yet directly visible viewer-wise for users to test (on Aditi).

New Starter Avatars

There was some discussion of the new all-mesh starter avatars (see: SL19B MTL – the Moles (new starter avatars + Linden Homes)), reiterating / stating:

  • This is not a re-working of the avatar system; it is aimed towards providing incoming new users with:
    • A selection of mesh avatars with which they can gain familiarity in terms of using / customising.
    • A supporting ecosystem of clothing / accessories rigged to work with the avatars / existing slider system.
    • A “stepping stone to allow them to more readily move towards more complex mesh avatar bodies / heads.
  • It is hoped that as the system starts to mature, avatar clothing / accessory makers can be encouraged to support these new avatars by providing clothing / accessories of their own (and also adding to their income stream by doing so).
  • There is a concern that the new avatars will be rejected by the existing community, so information will be made available to creators, etc., as the system reaches a point where reliable information can be shared.

In Brief

  • llSetEnvironment (for scripted EEP changes) should start being deployed in an upcoming simulator maintenance updates.
  • Currently, there are no plans to extend materials support to Bakes on Mesh; current materials or PBR.
  • Additional avatar slider discussion:
    • A further request was made for a global scaling slider for the avatar. This was described as being harder to implement that might appear – although not impossible.
      • Part of the problem is the complexity involved in adding a new slider to work within the existing system, and the impact it has on other back-end systems (such as the Bake Service) which then also need to be tested / updated.
      • It is also unclear how the animation graph could be impacted / adjusted to allow for realistic, size-based strides with walking (e.g. so very large avatars don’t appear to be taking disproportionately small steps or tiny avatars are zipping along like they are jet-propelled -although given what is currently possible, it’s not clear if trying to address issues like these would be seen as a requirement by users.
      • As such, while the request has been noted (and has been subject to feature request Jira, it is described as being on the “back burner” of work LL would like to get to at some point.
    • Gender: a request was made to make the Gender slider less of a binary male / female choice. A modification to TPVs helps to provide this – for which LL now has the details – but it would be better to have official support.
  • The inverse kinematics system as a whole is being looked at as a part of the avatar puppeteering (formerly avatar expressiveness) project.
  • Larger prim sizes than 64m: currently not under consideration; however, LL interested in learning more about how-where they would be used, so they might better determine size ranges, etc., and in preventing Land Impact making structures created by large-scale prims becoming unaffordable.
  • Non-physical region surrounds (e.g. by using environment settings to create a 360-degree panorama): still more in the discussion stage internally at the Lab rather than anything likely to be implemented in the foreseeable future.
  • Mojo Linden indicated he would like to be able to give some kind of a representative low-poly bakes that would be vertex-shaded, the idea being to give a greater sense of the “vastness” of Mainland than can be gained from extending Draw Distance (which would also have a viewer performance hit in trying to render everything within DD range). These would then someone “fade away” and be replaced by the “real thing” as an avatar moves towards them, with further low-poly bakes appearing in the distance.
    • This is not an immediate project, but something Mojo would like feedback on, in terms of being something worth time in the LL considering.
    • If this were to become a project, the emphasis would be on the bakes being very low-poly, and the progress from a bake to actual objects would not be seamless.
  • Terrain texture update: this has been previously discussed, but was put on hold as creators favoured PBR support. However, it is something the Lab will be getting back to in the future – with the potential for PBR support to potentially be extended to the terrain as a future PBR project, with possible PBR texture painting (grass, plants, dirt, etc.).
  • There was a general discussion on land: pricing, products, instancing regions (e.g. event / experience regions) being able to spin-up / down regions when in use / not in use.
    • All of these ideas are subject to internal LL discussions, and some have their own inherent challenges (e.g. how do you account for spinning-down regions in which there are scripts running that have an expectation the region will be available 24/7, such as breedables?; how do you offer variable sized regions (e.g. 128mx128m or 1024x1024m) when the system is built around the expectation of a uniform region size (256x256m)?).
    • Beyond ideas being discussed internally and seeking feedback from users, nothing is on the current roadmap in terms of new land products.

Next Meeting

  • Thursday August 4th, 2022.