2022 CCUG and TPVD meetings week #7 summary

Perpetuity, January 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, February 17th 2022 at 13:00 SLT. These meetings are chaired by Vir Linden, and meeting dates can be obtained from the SL Public Calendar.
  • My audio recording and the Video recording by Pantera (embedded at the end of this piece) from the Third-Party Viewer Developer (TPVD) meeting on Friday, February 18th, 2022 at 12:00 noon SLT.
  • It is a summary of the key topics discussed, and in the case of the TPVD meeting, timestamps to the relevant point of the video are included.

Available Viewers

[Video: 0:16-3:26 + notes from CCUG]

This list reflects the currently available official Second Life viewers.

  • Release viewer: version version 6.5.2.567427 – Mac Voice hotfix viewer, January 13 – no change.
  • Release channel cohorts:
    • Maintenance J&K RC viewer, version 6.5.3.567451, issued on January 20th.
    • The Tracy Integration RC viewer version 6.4.23.563771 (dated Friday, November 5) issued Tuesday, November 9.
  • Project viewers:
    • Performance Improvements project viewer version 6.6.0.567604, dated January 24.
    • Mesh Optimizer project viewer, version 6.5.2.566858, dated January 5, issued after January 10.
    • Performance Floater project viewer, version 6.4.23.562625, issued September 2.
    • Legacy Profiles viewer, version 6.4.11.550519, dated October 26, 2020.
    • Copy / Paste viewer, version 6.3.5.533365, dated December 9, 2019.

General Viewer Notes

  • The Maintenance J&K RC viewer is still the next in line for promotion to de facto release status.
    • Progress of this viewer had been delayed due to the viewer updater needing to be updated from Python 2 to Python 3.
    • This change has now been made, and the viewer is ready to be issued as an updated RC viewer.
  • Work continues on the Performance Improvements project viewer to lift that to RC status.
    • It was found that bump (normal) maps were being processed on the main viewer thread, causing the viewer to exceed 60 fps with Vsync enabled (which should hold it to 60fps), causing frame jitter. Bump map processing has therefore been moved to a separate thread.
    • There has been a pass to improve hardware compatibility with AMD GPUs.
    • An issue with rigged meshes failing to render in the thumbnail panels when editing an avatar’s shape has been addressed,
    • This could be the first in a series of viewers produced under the Performance Improvements banner, with the Lab already discussing additional improvements that could be made in future versions.
  • The Performance Floater viewer is being updated with further options to manually adjust viewer settings to help maintain frame rates.

MFA Viewer

[Video: 3:58-6:43]

  • As noted in the week #5 summary, multi-factor authentication (MFA) is coming to the viewer.
  • The viewer-side code is complete, and had been awaiting the implementation of server-side support.
  • The latter has now been deployed to the Main grid, so it is anticipated that an RC version of the official viewer will be available in the very near future.
  • It is  recognised that TPVs will need time to integrate the necessary viewer-side code into their offerings, therefore:
    • As MFA is implemented in the official viewer, there will be a “grace” period to allow TPV adopt the viewer code.
    • During this period, users will be able to access SL on TPVs as they currently do now, regardless of whether or not they have opted-in to MFA.
    • After this “grace” period, all users who have opted in to MFA will be required to authenticate themselves when using the viewer to log-in to Second Life (with the use 30-day period of valid authentication, as per secondlife.com MFA).
    • Please refer to my week #5 summary for the full list of notes on MFA in the viewer.

In Brief

Content Creation Meeting

  • Honouring joint rotation at mesh upload:
    • There are a number of long-standing bugs and requests concerning support (or lack that of) for maintaining mesh joint rotations at upload – currently, overrides are only provided for position and scaling.
    • The Collada .DAE file format does allow for rotation to be maintained through a number of ways, but currently SL doesn’t support all of them – hence when joint rotations tend to be ignored.
    • The general discussion leaned towards having the ability to override join rotation at upload would be a nice to have, with the view from LL that if done, it would be a check box at upload, so it would only apply to new content being uploaded, and not affect existing content.
  • Preference over the above was expressed for the ability to scale bones via animations.
    • This could allow for things like animals to increase in size as they grow from kitten / cub / pup, etc., to adulthood; possible improvements to clothing; enabling more complex avatar animations etc.
    • One potential issue with this is that scaling by animation might / will conflict with the skeletal sliders.
    • Providing animation scaling adds a further point of complexity, presenting 3 points at which scale is being impacted: within the mesh (from values at upload), trough the application of animations and via the shape sliders. Ergo, some form of ordering hierarchy is potentially required to avoid conflicts between the three.
    • No conclusions were drawn on this in terms of possible implementation or further investigation of options.
  • BUG-225519 “Mesh Uploader] Add option for automatic convex hull physics shape”.
    • Sparked an extended conversation on physics shapes and LI – not all of which, I confess, I could not entirely follow in listening back through the audio, as some of it depended on some in-world testing – and I was absent from my screen through the majority of the meeting, so did not get to see the in-world examples being manipulated.
    • Essentially, the feature request calls for the provision of simpler physics shapes to be available for use when uploading a mesh than are currently available – the simplest being a “cube” mesh physics asset. This is something Firestorm already provides:
Physics models offer through the Firestorm mesh uploader – the shapes being continued within the viewer for application. Credit: Beq Janus
    • The conversation also folded into it requests to have direct access to Havok (the physics engine) primitive physics shapes (sphere, cube, cylinder, etc., and the ability to upload them.
    •  For now, a contribution of the code used by Firestorm has been offered / requested.
    • This is turn lead to a discussion on, if implemented by LL, whether the default upload physics shape (Convex Hull) should be changed to “Cube” – with the preference being to leave it as is, although it was noted that with PBR set for future implementation, the upload mesh form may at some point need to be changed.
    • Given the confusion evident within the discussion, this also perhaps points to the need for the uploader to have a link to relevant and maintained documentation on best practices for mesh uploads, physics, etc.
  • The end of the meeting featured a further request for materials support for Bakes on Mesh (BoM)
    • This is something which, as noted in the past, would require a not insignificant extension to how bakes are handled, together with and expansion of the Bake Service itself – particularly if it was expected that individual layers would have an associated normal and specular channel associated with them.
    • A suggested alternative would be to have a single normal and single specular channel then is applied to the entire bake. While this might work for specularity, it’s not clear how this would work with a normal maps and be effective when trying to define different fabrics through the use of normals.
    • Currently, LL have no direct plans to implement materials for BoM.

TPV Developer Meeting

  • BUG-225696 “All offline inventory offers from scripted objects are lost” is to be the subject of a simulator-side project that is now “gearing up” to fix it “once and for all”, which is “coming for a near value of ‘Soon™’.
  • There are a lot of “new initiatives” in the pipeline with LL beyond those outlined in things like the 2021 year-end review, but nothing that has reached a point where it can be discussed in detail at TPVD (or other) meetings.

2022 CCUG and TPVD meetings week #5 summary

Carrowmore, January 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, February 3rd 2022 at 13:00 SLT. These meetings are chaired by Vir Linden, and meeting dates can be obtained from the SL Public Calendar.
  • My audio recording and the Video recording by Pantera (embedded at the end of this piece) from the Third-Party Viewer Developer (TPVD) meeting on Friday, February 4th, 2022.

So this document forms a summary of the key topics discussed, and in the case of the TPVD meeting, timestamps to the relevant point of the video are included.

Available Viewers

[Video: 0:19-0:52 + notes from CCUG]

This list reflects the currently available official Second Life viewers.

  • Release viewer: version version 6.5.2.567427 – Mac Voice hotfix viewer, January 13 – no change.
  • Release channel cohorts (please see my notes on manually installing RC viewer versions if you wish to install any release candidate(s) yourself).
    • Maintenance RC viewer, version 6.5.3.567451, issued on January 20th, combining the Jenever and Koaliang Maintenance viewers.
    • The Tracy Integration RC viewer version 6.4.23.563771 (dated Friday, November 5) issued Tuesday, November 9.
  • Project viewers:
    • Performance Improvements project viewer version 6.6.0.567604, dated January 24.
    • Mesh Optimizer project viewer, version 6.5.2.566858, dated January 5, issued after January 10.
    • Performance Floater project viewer, version 6.4.23.562625, issued September 2.
    • Legacy Profiles viewer, version 6.4.11.550519, dated October 26, 2020.
    • Copy / Paste viewer, version 6.3.5.533365, dated December 9, 2019.

General Viewer Notes

  • The Maintenance J&K RC viewer is likely the next viewer to gain promotion as the de facto release viewer.
  • The Performance Improvements viewer is close to being ready for promotion to RC status, and is just pending some remaining bug fixes.
    • This viewer did have changes to alpha sorting for rigged attachment, but following reports of content breakage as a result of this change, which was more a technical change than a performance enhancement, it has now been reverted to expected alpha sorting behaviour to avoid the breakage issue. Instead, possible alternative approaches will be looked at in the future.
    • A future version of this viewer is to include a new UI element intended to help make adjustments to some of the high-impact graphics settings to help improve frame rates,
  • LL is also completing work to switch the viewer over to using Python 3.

Viewer Multi-Factor Authentication Support – TPVD

[Video: 0:53-23:00]

Background

  • In September 2021, Linden Lab introduced multi-factor authentication (MFA) utilising either a QA code + mobile device or a key number, for those pages of the SL website that provide access to users’ account information (see: Second Life Multi-Factor Authentication: the what and how, September 2021).
  • When introduced, it was indicated that over time, the use of MFA would be expanded and improved, and would eventually include the viewer as well.
  • Brad Linden is now working on implementing MFA for the viewer.

What This Means

  • The work has reached a point where LL is close to having a viewer with MFA support ready for initial testing (as defined by  see: SL Wiki: Login MFA), together with updates to the back-end log-in service to support it.
  • Viewer MFA will be based on users opting in to the capability via the secondlife.com dashboard, as described in the blog posted linked to above.
  • It is  recognised that TPVs will need time to integrate the necessary viewer-side code into their offerings, therefore:
    • There will be a grace period between the initial introduction of the code in the official viewer and a time when all viewers / clients access Second Life will be required to support MFA to allow users who have opted-in to MFA to continue logging-in to SL.
    • During this grace period, all users on a TPV will be able to access Second Life, regardless of whether or not they have opted into MFA.
    • After the grace period has expired, all TPVs will be expected to support MFA, and those users on them who have opted in to MFA will be required to authenticate themselves when using the viewer to log-in to Second Life (with the use 30-day period of valid authentication, as per secondlife.com MFA).
    • During the grace period, users on TPVs that switch to support MFA will likewise need to start authenticating themselves when logging-in to SL.
  • Again, this will only affect users who have opted into MFA (unless LL at some point decides all user must use MFA to access SL).
  • MFA on the viewer will be a blanket action – there will be no additional MFA authentication for actions such as buying Linden Dollars through the viewer.
  • Using MFA when logging-in to the viewer will not automatically also authenticate you on secondlife.com or vice-versa.

There was a broader discussion on providing alternative mechanisms by which users can opt-in and use MFA – such as e-mail – rather than relating on a mobile device and authenticator software. Such decisions fall outside the realm of the viewer development team, and so could not be answered directly (however LL have stated  additional / alternate methods of authentication will be added to the system at some point in the future).

In Brief

Content Creation Meeting

  • BUG-231731 “Script text quality and performance” prompted questions on how it might be implemented given it has been accepted. Vir pointed out that “Accepted” does not necessarily mean it a Feature Request will be implemented forthwith, and as such, it will be raised for discussion once it has reached a point where LL is considering working on it.
  • BUG-229205 “Re-enable PRIM_CAST_SHADOWS” came up for discussion, it is believed that the viewer-side code for it has been deprecated / removed, and the server also no longer recognises the function.
    • Runitai Linden suggested it is something that should be re-enabled on the grounds that it is “something that most graphics engines let you do.”
    • However, any final decision will be subject to further internal discussions within LL.
  • Request: allow seated avatars to temporarily have a physics shape of none if explicitly set by script (potential use-case: an in-world game uses tiny vehicles in a scaled environment to simulate a larger playing field, but as the drivers are normal-sized avatars, they cause collisions between one another, impairing gameplay; disabling the avatar physics would  in theory prevent this, although it is not clear if such a change would be recognised by the simulator, where it is believed the expectation of avatar physics is  assumed throughout the code).
    • The discussion encapsulated requests such as BUG-5538, the need for an overhaul of the camera control system & better LSL access to same; better joystick control options, and better support for alternative input types.
    • The latter point in turn led to a discussion on wider HID support and even the potential for MIDI (Musical Instrument Digital Interface) support (having been a means to provide remote control and synchronisation prior to HID design becoming the “standard”) as a means to transport and synchronise joystick inputs from the viewer to the simulator in a generic, open manner.
    • All of this was spitballing, rather than the formulation of an actual project.

TPV Developer Meeting

  • [Video 26:10-53:10] Animation Override Discussion – TPVD
    • This follows-on from the week #3 TPVD meeting.
    • Essentially what is being sought is a solution similar to the Firestorm AO (but without the apparent overheads) that effectively allows viewer-side replacement of animation states sent by the server with local animations, avoiding the need for scripted HUDS / attachments.
    • Much of the discussion at this meeting is clarifying the original request for Vir Linden’s benefit, although the consensus is that official a cap replacement for llSetAnimationOverride and allowing TPVs to implement their own viewer-side AO UI elements would be a good start.
    • Once this has been done, then discussion can turn to the more complex issue of adding further animation states.
    • A Cap and viewer-side controls will not fully eliminate scripted AOs (particularly in the case of non-human AO walks, sits stands, for example), but this shouldn’t negate the provisioning of a Cap.
    • Please refer to the video for the discussion – much of which is in text chat.

2022 CCUG meeting week #4 summary

Grauland, January 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, January 27th 2022 at 13:00 SLT. These meetings are chaired by Vir Linden, and meeting dates can be obtained from the SL Public Calendar.

Available Viewers

  • The Performance Improvements project viewer updated to version 6.6.0.567604, on Wednesday, January 26th.

The rest of the official viewers remain thus:

  • Release viewer: version version 6.5.2.567427 – Mac Voice hotfix viewer, January 13 – no change.
  • Release channel cohorts (please see my notes on manually installing RC viewer versions if you wish to install any release candidate(s) yourself).
    • Maintenance RC viewer, version 6.5.3.567451, issued on January 20th, combining the Jenever and Koaliang Maintenance viewers.
    • The Tracy Integration RC viewer version 6.4.23.563771 (dated Friday, November 5) issued Tuesday, November 9.
  • Project viewers:
    • Mesh Optimizer project viewer, version 6.5.2.566858, dated January 5, issued after January 10.
    • Performance Floater project viewer, version 6.4.23.562625, issued September 2.
    • Legacy Profiles viewer, version 6.4.11.550519, dated October 26, 2020.
    • Copy / Paste viewer, version 6.3.5.533365, dated December 9, 2019.

General Viewer Notes

  • The Maintenance J+K RC viewer remains the most likely RC to move to de facto release status.

Fix for Long-Standing Animations Bug-11194

BUG-11194 “First frame of uploaded animations is triplicated” has been a long-standing issue (with workarounds) for uploaded BVH animations.

  • Aech Linden (a further transferee from High Fidelity) has been looking at the issue and developing a fix, although it involve a behavioural change for newly-uploaded
  • The explanation was garbled due to an network issue, but it appears the crux of the matter has been due to the way SL handles .BVH animations at upload, there have been two extra frame intervals added to the animation run-time, leading to errors in playback.
  • The fix is to remove the addition of these frame intervals (which occur at the start of the animation with zero interpolation.
    • There is a concern from the Lab that doing it unannounced could cause problems for new BVH uploads that include any workaround in anticipation of hitting the bug. Hence the heads-up on the change.
    • It was noted that a lot of pose stands BVN animations of just one frame, and the proposed fix might result in these giving “random” results from  a pose when new .BVH files are uploaded and placed in them by creators (particularly those using the in-world Anypose tool).
    • The fix will only impact new BVH animations uploaded to SL; it will not affect existing BH animations that have been uploaded.
  • The general feeling at the meeting was that most animators in SL use .ANIM rather than .BVH.
  • Given some of the confusion around the use of .BVH files, it is possible this change will be subject to a project viewer offered up for animators to poke at and provide feedback.

Animation Priorities and Capabilities

  • The ability to set the animation at run-time (rather than relying on the priority set aby the creator) to allow uses to adjust priorities between the animations that are using to avoid conflicts. Nothing is currently planned on this by the Lab, but it has been noted as a reasonable request.
  • It was noted that Firestorm has added the priority and other animation information the the animation playback floater.
Additional animation information Firestorm added to the animation playback floater
  • The core of the discussion focused on options for enabling animation priority changes (and other changes – such as animation speed) were discussed.
  • Changing the animation speed brings with it its own problems, so was tabled.
  • For priority, a manual capability + scripted capabilities were discussed, together with the potential to have options defined by list parameters supplied via the simulator.
  • No conclusions were drawn as to what might be attempted in the future (the animation system is not subject to any planned work) – although it was acknowledged that allowing the animation priority to be displayed by the viewer a-la Firestorm, should be a relatively simple change, were LL to opt for it.

In-World Build Tools

  • There have been numerous requests for the in-world build tools to be updated / improved. Currently, there is no project for this work, but it is something about which feedback was sought.
  • The request was specifically couched in terms of “limited but powerful” updates – so nothing along the lines of implementing a blender-like toolset within the viewer.
  • Feedback included, but was not limited to:
    • A “snap to” option in the existing build tools. (e.g. so a bookcase could be “snapped” against a room wall without having to be manually positioned).
    • The ability for reactors to offer “snap together” kits users can put together (and presumably mod as they go). This would be a more major capability with the ability to define connection points between items.
    • Options to amending particle and prim text properties directly (+ pivot points).
    • More complex asset items that allow “holes” for windows / doors.
    • A visual node system for in-world to allow people to code anything “super quick” (e.g. elements that contain scripted behaviours that can be put together / used in objects, rather than having to write text scripts).
    • Terrain as a prim (the prim is a heightmap texture when used).
    • A form of EEP setting that can be used as a backdrop / “surround” around skyboxes (like a cityscape or mountains in the distance) rather than having to use massive textured sculpties.
  • Support for Marvelous Designer (MD) clothing manipulation (as used by Sansar) was suggested. However, Runitai Linden, who worked on the MD implementation for Sansar described it as technically “not a great fit” for integration into Second Life on the grounds it didn’t work well in a 2D view using a mouse.
  • There has been some talk in LL about hidden surface removal on avatars (e.g. if a part of the body is covered by clothing, remove it rather than expecting it to be manually alpha’d out). However, there are complexities in doing this that may not end up as a “win” if some kind of ability were to be implemented.

In Brief

  • Custom pivot points (note: this was apparently subject to a lengthy discussion at the previous CCUG meeting, which I was unable to attend, so some context from these notes may be missing).
    • Rider linden has been working on simulator support for custom pivot points in avatar meshes. There is still some work to be dome, so there is no time frame when this work may surface on Agni.
    • Custom pivots can be set (and accepted) both at mesh upload or via LSL.
  • The latter part of the meeting was a technical discussion on the avatar skeleton, the morph skeleton, blend shapes, options for overhauling the avatar system, none of which are current projects.
  • Runitai did indicate LL is thinking about is replacing / augmenting the entire avatar imposter system – which is not particularly performant as it can cause viewer frame spikes when someone is camming around and causing avatars in their view to imposter, etc.  This would see avatars + their entire outfit that would be impostered undergo  hidden surface removal and have all attached meshes and materials baked into one meh material which would then be decimated down to as few draw calls and triangles as possible and then render that rather than an imposter.
  • It was confirmed in the meeting that PBR is to be a project, but no time frames on when it will reach a point of visibility.

2021 CCUG meeting week #50 summary

Elysium, October 2021 – blog post

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

Available Viewers

This list reflects those viewers available via Linden Lab.

  • Release viewer: version version 6.5.1.566335, formerly the Cache+ 360 Capture viewer, dated December 7, promoted December 15 – NEW – see: 360 Capture viewer now de facto SL release viewer.
  • Release channel cohorts (please see my notes on manually installing RC viewer versions if you wish to install any release candidate(s) yourself):
    • The Jenever Maintenance RC viewer, version 6.5.1.566306, issued on December 6.
    • The Koaliang Maintenance 2 RC viewer, version 6.5.1.565905, issued on December 6.
    • The Tracy Integration RC viewer version 6.4.23.563771 (dated Friday, November 5) issued Tuesday, November 9.
  • Project viewers:
    • Performance Improvements project viewer updated to version 6.5.1.566443, dated December 8.
    • Performance Floater project viewer, version 6.4.23.562625, issued September 2.
    • Mesh Optimizer project viewer, version 6.4.23.562614, issued September 1.
    • Legacy Profiles viewer, version 6.4.11.550519, dated October 26, 2020.
    • Copy / Paste viewer, version 6.3.5.533365, dated December 9, 2019.

General Viewer Notes

  • It is possible the two Maintenance RC viewers will be combined into a single release prior to their promotion in early 2021.
  • Work is continuing to work out the bug in the Performance Improvements project viewer in the hope it will be fit for promotion to RC status early in 2022.

Second Life Terrain Discussions

It has long been noted that the terrain in Second Life has never received a major overhaul, although the subject has been discussed from time to time. Currently, a terrain project still is not on the roadmap, but the floor was opened for suggestions as to what users might like to see if such a project were to be adopted by LL.

The questions was framed around “terrain” being the overall appearance of a region – land, water, the use of any region surround, support for flora, interactions with the wind, having much improved texture quality, etc., so as to offer a much improved graphical experience that does not put an undue load on the viewer when rendering or requires the simulator to send a mountain (no pun intended) of data to the viewer.  In other words, how to make SL landscapes / environments “prettier” and “more up-to-date” without undue impact on overall performance.

  • In terms of the existing system, suggestions put forward included:
    • The ability to have Linden water on a prim (rather than animated diffuse, normal and specular maps).
      • One problem here is the potential for serious performance hits (e.g. linden water on prim / mesh faces being used (or over-used!) for mirror effects) – particularly given actually occluding “non-visible” Linden water (e.g. the “water” beneath the terrain map) in order to help improve viewer performance is very much something being actively looked at (and is being implemented in the case of the Catznip TPV).
    • Support for using splat / weight maps.
    • Proper blending / integration between terrain and any region surround.
    • Ability to instance “proper” trees, grass a fauna (rather than the (circa 2002) default Linden trees, etc., included in the build tools.
    • Ability to blend / layer textures to allow things like a base of dirt, overlaid with grass, then the two blend to give the impression of wheel ruts or a dirty / rock path through the grass, etc.
  • It was also pointed out that there are multiple limitations to the current terrain system and tools (e.g. the inability to create tunnels or caves, limitations is blending terrain between parcels under separate ownership, the manner in which alterations to the height fields can cause a bad stretching of the surface textures, etc.), as such, many region designers already prefer working entirely in mesh, and so a better effort might be to provided improved support for this approach, including:
    • The ability to use large terrain meshes that are not prohibitively expensive  in terms of LI,.
    • Allowing proper texture blending on mesh terrain surfaces.
    • Support (again) for splat / weight maps. etc.
  • In terms of instancing flora, concern was raised how this might impact the landscaping market / economy (e.g. if LL provide a range of “nice trees”, will people still, buy their own? could the instancing system be made extensible, so that content from creators could be “plugged into” it?, etc.).
  • Overall, no conclusions were drawn, but a lot was offered up in terms of ideas, with the discussion also touched on issues of physics (notably the use of mesh terrain elements across region boundaries, the potential for increased physics collision calculations resulting on a performance hit; and also discussions of an expansion of the materials system allow the use of additional maps / making the materials system more a asset-based system (like EEP settings), consideration of updating SL to offer reasonable / real PBR support, etc.

2021 CCUG meeting week #48 summary: Graphics work

Nelipot, September 2021 – blog post

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

Unfortunately, my audio recording turned into so much noise around half-way through the meeting, so what follows is a truncated set of notes based purely on text.

Available Viewers

This list reflects those viewers available via Linden Lab.

  • Release viewer: version version 6.5.0.565607, formerly the Maintenance RC and dated November 10, promoted November 15 – this viewer now contains a fix for the media issues caused by the Apple Notarisation viewer.
  • Release channel cohorts (please see my notes on manually installing RC viewer versions if you wish to install any release candidate(s) yourself):
    • The Tracy Integration RC viewer version 6.4.23.563771 (dated Friday, November 5) issued Tuesday, November 9.
    • 360 Snapshot RC viewer, version 6.5.0.564863, issued October 21.
    • Simplified Cache RC viewer, version 6.4.23.562623, dated September 17, issued September 20.
  • Project viewers:
    • Performance Improvements project viewer updated to version 6.4.24.565672 (dated November 17) November 22.
    • Performance Floater project viewer, version 6.4.23.562625, issued September 2.
    • Mesh Optimizer project viewer, version 6.4.23.562614, issued September 1.
    • Legacy Profiles viewer, version 6.4.11.550519, dated October 26, 2020.
    • Copy / Paste viewer, version 6.3.5.533365, dated December 9, 2019.

General Viewer Notes

  • The aim is still to combine the 360 Snapshot RC viewer and the Simplified Cache RC viewers into a single RC in preparation for promotion.

Graphics Work

  • This work has comprised a number of elements, both in moving processes that should logically have their own threads, and in moving processing that can cause the main thread to stall while it is handling them (e.g. processes that talk to the graphics API, the texture upload to OpenGL, etc.) to other background threads, together with overhaul avatar rendering.
  • The main focus of work is now bug fixing, with the hope to get an RC viewer out before the holiday period.

Blend Shapes

Over time, LL has received multiple requests for blend shape / morph target / shape key support to be added to the avatar system  (see BUG-22993 as an example). Were such a capability be added, it will require a new asset type associated with the avatar or a part of the original mesh definition.

  • However, for the meeting, Vir asked creators to assume the option to be available and asked for thoughts on how they would be used, e.g:
    • Should that have name-based parameters with LSL support for accessing them?
    • How else might they be controlled if they did not correspond to existing sliders?
  • The Lab’s thinking is that there are two categories of blend shapes to be considered:
    • Blend shapes that are intended to implement functionality that is equivalent to the built-in slider blends of the system avatar (and so can be integrated into the existing slider number system).
    • Blend Shapes that are intended to be independent of the existing slider system.
  • It was noted that any slider-based system for blend shapes could be limited, as it won’t necessarily work with clothing without an overhaul of the avatar rigging system, as clothing has no inherent understanding of the base body form.
    • While there are potential work-arounds to the above point, they would require adding further levels of technical complexity to SL, which perhaps isn’t the best way to go – and would be a much large project to implement.
  • The assumption is also that blend shapes would have a fixed 0.0 – 1.0 input range, which raised the question of how would it be triggered?
    • Via editing?
    • Using LSL?
    • Referenced in an animation (to allow more dynamic use – such as facial emoting)?
  • (As it was at this point audio went sideways, I believe the general feeling was the all three options for triggering; but without audio to confirm Vir’s feedback, I’m unsure).

In Brief

  • Andrew (Mojo Linden) Kertesz, the Lab’s new Vice President of Engineering, dropped into the meeting, having already become a semi-regular attendee at the Simulator User Group and the TPV Developer meetings.
    • He noted he is hoping to drop in to further meetings, possibly on a monthly basis, and build up a picture as to the hopes / wants / needs of content creators and gather information that can perhaps be folded back into the Lab’s own plans.
    • He also indicated that thoughts at the Lab are now turning towards features, capabilities and experiences and a road map of ideas is being developed; but nothing currently ready for any form of disclosure.
  • In asking those present for feedback on what content creators might like to see, the answers supplied included:
    • An improved / off-the-shelf scripting system.
    • The ability to build UI-based HUDs. This has been a common request, and potential use-case explains were requested during the meeting, to help LL better understand how / where they might be used (e.g. “this is how this HUD + LLSL is being done today – how could/should it be done with language X + widgets”).
  • Requests were again made for LL to devote time to updating documentation, particularly those elements of the wiki that are being kept active  – such as the pages referencing content creation. These are wildly out-of-date / misleading, and frustration was voiced over the fact that Beq Janus of the Firestorm team spent a considerable amount of time annotating issues and providing LL with a list of updates to all content creation documentation, none of which has been actioned.
  • The subject of mesh LODs (and / or lack thereof) and the potential for auto LOD generation (and what to do with existing content where the LODs have been wither played down or are non-existent).
    • While there are possible ways to allow for auto LODding existing content, they may require opting-in by content creators (and some may not be able to do so anyway), or may not not always work; others would require some kind of updating of the back-end mesh asset ID – something that is not current possible.
  • On the positive, the Lab seem open to accepting well-defined / written proposals for potential improvements that can both simplify and / or provide performance improvements with both in-world content and avatars.

Note: there will be one more CCUG meeting for 2021 – Thursday, December 17th.

2021 CCUG meeting week #46 summary: Graphics work

Bella’s Lullaby, September 2021 – blog post

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

AVAILABLE VIEWERS

This list reflects those viewers available via Linden Lab.

  • Release viewer: version version 6.5.0.565607, formerly the Maintenance RC and dated November 10, promoted November 15 – this viewer now contains a fix for the media issues caused by the Apple Notarisation viewer.
  • Release channel cohorts (please see my notes on manually installing RC viewer versions if you wish to install any release candidate(s) yourself):
    • The Tracy Integration RC viewer version 6.4.23.563771 (dated Friday, November 5) issued Tuesday, November 9.
    • 360 Snapshot RC viewer, version 6.5.0.564863, issued October 21.
    • Simplified Cache RC viewer, version 6.4.23.562623, dated September 17, issued September 20.
  • Project viewers:
    • Performance Improvements project viewer updated to version 6.4.24.565324 (dated November 5) November 9.
    • Performance Floater project viewer, version 6.4.23.562625, issued September 2.
    • Mesh Optimizer project viewer, version 6.4.23.562614, issued September 1.
    • Legacy Profiles viewer, version 6.4.11.550519, dated October 26, 2020.
    • Copy / Paste viewer, version 6.3.5.533365, dated December 9, 2019.

General Viewer Notes

  • It is possible the 360 Snapshot RC viewer and the Simplified Cache RC viewers may be merged prior to either being individually promoted to de facto release status.

Graphics Work

  • The core of the graphics team is shifting emphasis from making performance changes to the rendering pipe to focusing on stabilising the changes thus far made. As Vir has elsewhere noted, the problem with moving operations between threads / to their own threads is that there can be undesired consequences which then must be addressed.
    • This work has comprises a number of elements, both in moving processes that should logically have their own threads, and in moving processing that can cause the main thread to stall while it is handling them (e.g. processes that talk to the graphics API, the texture upload to OpenGL, etc.) to other background threads.
  • Runitai Linden continues to update how avatar rigged meshes are rendered.
    • In short, he hopes to use the same approach to handling static meshes to rigged mesh (including Animesh creations), allowing the latter to be handled in batches, reducing the overall number of draw calls and giving a potentially substantial performance boost.
    • The improvements should be particularly noticeable when rendering the “onion layer” avatar meshes that have multiple layers and are segmented into multiple cuts. Runitai reports his testing shows a 50% improvement in rendering 20 avatars – but improvements will be hardware dependent.
    • There are some issues: as it stands, the updated code does change the order of sorting / rendering alphas, which could be problematic for some creators. If so, LL will look at what can be done to prevent this (as an aside to this, vertex ordering within Blender, etc.), should not be impacted). There are also limits on how far this can be taken due to things like how faces with unique textures or with separate materials must be handled.
    • Currently, Runitai plans to spend the next few weeks testing and improving the changes with a view to having a view publicly available in the New Year.
  • Part of the discussion centred on texture use (and over-use), which covered a number of elements including:
    • A reminder of why the use of 1024×1024 textures on every surface, no matter how small is really bad idea, both because of the amount of VRAM each texture (+ any associated materials) uses (up to 4MB each); and because even if the face used only exposes a small portion of the texture, the viewer still has to process the entire texture before it can be rendered at full resolution, so it’s just leaving people with a greater amount of time the texture is blurred in their view.
    • The pros and cons in using a texture atlas. On the plus, this always multiple textures to be handled as a single draw operation, and is done where possible. However, unlike a conventional game, texture use in Sl is less predictable (e.g. an avatar can use the same texture “as is”, alpha masked, alpha blended and as a specular map, impacting the ability to use it within any texture atlas.
  • Whilst on the back burner at present, it is hoped that Vulkan, if / when adopted, could solve a lot of texture batching and draw call issues on the Windows platform, as it has a “fundamentally different” way of handling the latter. However, any shift in graphics API is held depending the current clean-up of the rendering code. On October 30th, Runitai described the options under consideration as:
    • Using Vulkan (Windows) and Metal (Apple).
    • Running Vulkan extraction layers on top of G3D on Windows (and MoltenGL for Apple?)
    • Implementing an off-the-shelf multi-API extraction layer.
    • Home-brew a dedicated extraction layer.
    • Stick with OpenGL for Windows and use MoltenGL for Apple (as noted above).
    • Initially supporting Vulkan + OpenGL for Windows and then retiring OpenGL and running Vulkan extraction layers on top of G3D (no word on Apple solutions in this scenario).
  • As a part of the current  work, LL has tested using OpenGL Core Profile rather than the currently-used OpenGL Compatibility Profile.
    • Core Profile offers a performance win for nVidia GPUs – but presents a performance hit for AMD and Apple systems, so a determination on its use has yet to be made.
    • Core Profile also does not work GLOD for mesh uploads, so if adopted, GLOD support may be entirely dropped from the viewer in favour of the Mesh Optimiser (as found in the current Mesh Optimiser project viewer).
  • Other updates the graphics team are considering include:
    • Making VSync enabled by default in the viewer, which should give a more consistent rate at high (100+) FPS.
    • Removing the ability to uncheck OpenGL Vertex Buffers and Hardware Skinning, as disabling either isn’t particularly good for performance.