2020 Content Creation User Group week #27 summary

Yes – Endless, May 2020 – 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 2nd 2020 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.

SL Viewer

  • A Custom Key Mappings project viewer, version 6.4.5.544079, was issued on Tuesday, June 30th.

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

  • Current Release viewer version 6.4.3.543157, dated June 11, promoted June 23, formerly the CEF RC viewer.
  • Release channel cohorts:
    • Love Me Render RC viewer, version 6.4.5.544028, June 30.
    • Tools Update RC viewer, version 6.4.5.544097, June 25 – this viewer is built using VS 2017 / a recent version of Xcode, and Boost.Fiber. It contains no user-facing changes.
    • Arrack Maintenance RC viewer, 6.4.5.544024, issued on June 24 – this viewer uses Viewer Manager 2.0.538279.
  • Project viewers:
    • Custom Key Mappings project viewer, version 6.4.5.544079, June 30.
    • Mesh uploader project viewer, version 6.4.4.543141, June 11.
    • Copy / Paste viewer, version 6.3.5.533365, December 9, 2019.
    • Project Muscadine (Animesh follow-on) project viewer, version 6.4.0.532999, November 22, 2019.
    • Legacy Profiles viewer, version 6.3.2.530836, September 17, 2019. Covers the re-integration of Viewer Profiles.
    • 360 Snapshot project viewer, version 6.2.4.529111, July 16, 2019.

General Viewer Notes

  • The Love Me Render (LMR) RC viewer is still absorbing fixes for EEP and rendering issues. Version 6.4.5.544028, dated June 30th includes a fix for BUG-225784 “BUG-225446 regression – HUDs are again affected by environment setting”. This viewer will hopefully in time include a fix for specularity issues (see BUG-228781 and BUG-228581).
  • It looks like the Legacy Profile viewer could be getting promoted to RC status very soon.

ARCTan

Project Summary

An attempt to re-evaluate object and avatar rendering costs to make them more reflective of the actual impact of rendering either in the viewer. The overall aim is to try to correct some inherent negative incentives for creating optimised content (e.g. with regards to generating LOD models with mesh), and to update the calculations to reflect current resource constraints, rather than basing them on outdated constraints (e.g. graphics systems, network capabilities, etc).

As of January 2020 ARCTan has effectively been split:

  • Viewer-side changes, primarily focused on revising the Avatar Rendering Cost (ARC) calculations and providing additional viewer UI so that people can better visibility and control to seeing complexity.
  • Work on providing in-world object rendering costs (LOD models, etc.) which might affect Land Impact will be handled as a later tranche of project work, after the avatar work.
  • The belief is that “good” avatar ARC values can likely be used as a computational base for these rendering calculations.

Current Status

  • Vir’s updates to jelly dolls have hit a couple of issues whilst in QA, but should still get rolled into the ARCTan project once he’s had a chance to fix them.

In Brief

Pathfinding Navmesh

  • A request was put forward to allow scripted access to rebaking a region’s navmesh (used with Pathfinding).
  • A use case for this would be something likes a procedural game where elements of the scene may be placed via script in accordance with progress.
    • As alterations to a scene impact the navmesh, this can upset NPCs using it.
    • Currently, the only way to rebake is via manual intervention, which can be missed.
    • Offering a scripted means would ensure the navmesh is automatically updated when required.
  • This type of scripted update has been requested in the past, and generally frowned upon due to the risk of potential abuse. However, risk could be mitigated by limited the scripting option to estate owners / managers, and using a throttle on the number of allowed requests.
  • That said, multiple rebakes of the navmesh can themselves have a cumulative impact on simulator performance and resources (particularly on Homestead regions), such that a region restart is required to correct matters, which might in some cases be as disruptive, so this would likely need to be re-examined.
  • Currently, there are no plans to work on Pathfinding in the short-to-medium term, however, it has been requested that the idea is written up as a feature request for review by the Lab.

Other Items

  • There as been a request for the viewer to support Scalable Vector Graphics (SVG) image format (see: BUG-229007). However, this would require an extensive overhaul of the graphics pipeline (which currently uses JPG2000) in order to ensure all texture handing had a code path for running SVG. So this is not a likely target for a project.
  • There was a general discussion on the animation system and file formats (.ANIM and .BVH) including long-standing requests to overhaul the system and provide overrides for priority, speed, start / stop frame, etc., and more informed control of easing out/in to the animations. Currently, there is no work being planned for the system, however.
  • A request has been made to allow for scripted interrogation on how people are using EEP. The specific use case would be a game or similar, where a specific environment has been set (e.g. fog / reduced visibility) and the system could query incoming systems to ensure the viewer is set to Use Shared Environment, and if not, advise the user they need to change their setting. Not clear if / how this will be addressed.
  • Next meeting: Thursday, July 16th, 2020.

2020 Content Creation User Group week #25 summary

Thermae, May 2020 – 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, June 18th 2020 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.

SL Viewer

  • It had been planned that the next viewer to be promoted to de facto release status would be the Love Me Render (LMR) RC viewer. However:
    • LMR is being held over pending the inclusion of various EEP bug fixes, including a fix for the HUD issues (see BUG-225784) and a fix for the specularity problems (see BUG-228781 and BUG-228581).
    • This means the next viewer that will likely be promoted will be the CEF RC viewer, and this could be promoted in week #26 (commencing Monday, June 22nd).

Viewer Caching

  • Work is continuing to try to improve viewer caching.
  • First outcome of this work is liable to be a viewer that has improved VFS caching (the system used to cache information on in-world objects). This will be a complete replacement of the VFS cache with a new format that retains data better and is more performant.
  • The next element of work after the VFS update is liable to be an overhaul of the viewer’s texture caching.

ARCTan

Project Summary

An attempt to re-evaluate object and avatar rendering costs to make them more reflective of the actual impact of rendering either in the viewer. The overall aim is to try to correct some inherent negative incentives for creating optimised content (e.g. with regards to generating LOD models with mesh), and to update the calculations to reflect current resource constraints, rather than basing them on outdated constraints (e.g. graphics systems, network capabilities, etc).

As of January 2020 ARCTan has effectively been split:

  • Viewer-side changes, primarily focused on revising the Avatar Rendering Cost (ARC) calculations and providing additional viewer UI so that people can better visibility and control to seeing complexity.
  • Work on providing in-world object rendering costs (LOD models, etc.) which might affect Land Impact will be handled as a later tranche of project work, after the avatar work.
  • The belief is that “good” avatar ARC values can likely be used as a computational base for these rendering calculations.

Current Status

  • Vir now trying to roll the jelly doll updates into the rendering cost calculations and performance measurements.
  • One thing the core work on ARCTan has been awaiting is a fix to the Bake Service for errors arising when calculating height offsets with complex mesh items, which can result in the avatar bake failing. The fix for this is in place, and the updated Bake Service should be exposed to a simulator RC for testing “fairly soon”. The change itself should have no visible impact other than to correct the rare instances where the issue occurred.

In brief

  • There have been reports of avatar bakes taking longer to complete recently.However, it is not clear if this is an actual issue; LL have not noted any Bake Service processing issues, and also note that users may be noting a perceived “slowing” due to changes made a while ago to try to prevent avatars de-clouding fully nude (e.g. due to latency between the viewer and the CDN, or local caching issues, etc.).
  • In terms of avatar rezzing, there is also work being put into reducing the instances of rigged mesh elements rezzing offset / incorrectly sized related to an avatar (e.g. clothing appearing off to one side and rotated to be on its side; gigantic heads rezzing, etc.).
  • Next meeting: Thursday, July 2nd, 13:00 SLT.

2020 Content Creation User Group week #23 summary

The Beguiled Art Gallery and Studio, May 2020 – 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, June 4th 2020 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, Vir was on a replacement computer for this meeting, and the audio quality was exceptionally bad in the early part of the meeting, making comprehension both in the meeting and when playing back my audio recording very difficult.

Terrain

  • LL has long acknowledged that terrain texture quality in Second Life is not overly great by today’s graphics standards.
  • There is no defined project to update terrain textures as yet, but Vir took the opportunity to take feedback on ideas for what might be included. Some of this comprised:
    • Better texture density for crisper textures.
    • Texture layering to allow for roads / paths, etc.
    • Support for higher resolution textures.
    • Splat maps for textures and for normal and specular support.
  • Voxel support was requested, but this is seen as a much larger project than terrain texturing, we Linden Lab to go that route, and it is certainly not something on the cards for the foreseeable future.

Jelly Dolls / Avatar Rendering

  • Vir continues to work on this and has (I believe) a viewer with some of his ideas included available for internal testing or review at the Lab.

Project Muscadene (Animesh Follow-On)

Project Summary

Currently: offering the means to change an Animesh size parameters via LSL.

Current Status

  • Still officially on hold.
  • Attach points support has been requested and could be a “next step”.
  • However, when work is resumed, the emphasis will be on fixing the identified bugs around the LSL parameter setting process

In brief

  • EEP: LL are still looking to correct:
    • Specularity (shininess) issues – see BUG-228781 and BUG-228581. One of these issues is now fixed internally to the Lab, the other is “in progress”. When deployed, should see behaviour return to pretty much how it was pre-EEP, how where the fixes will fit in viewer updates is still TBD.
    • Issues with the environment settings for Mainland. This has proven harder to fix. It appears that the wrong environment settings were baked into the Mainland regions, and the most direct means of correcting this is by manually correcting them.
  • The EEP issues – which arguably show things as they *should* appear, but which in doing so “break” content (hence trying to get the “fixes” in s that assets don’t have to be corrected & re-uploaded, etc.), sparked a discussion on how indicated changes to the rendering pipeline will be handled. Essentially these will be “opt in” for content created after any updates are deployed; old content will be “opt out”, to avoid breakage.
  • Next meeting: Thursday, June 18th, 13:00 SLT.

2020 Content Creation User Group week #21 summary

Dya’s Scent of the Caribbean, April 2020 – 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, May 21st 2020 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.

SL Viewer

The CEF Special viewer has been withdrawn from downloads, pending the release of a more rounded CEF RC viewer containing broader support for more options for streaming into SL + more codecs.

The FMOD Studio RC viewer updated to version 6.4.3.542486 on May 19th.

The remainder of the current official viewer pipelines are as follows:

  • Current Release viewer version 6.4.2.541639, dated May 11th, promoted May 19th, formerly the Camera Presets RC viewer – see my Camera Presets tutorial.
  • Release channel cohorts:
  • Project viewers:
    • Mesh uploader project viewer, version 6.4.2.541645, issued May 15th.
    • Copy / Paste viewer, version 6.3.5.533365, December 9th, 2019.
    • Project Muscadine (Animesh follow-on) project viewer, version 6.4.0.532999, November 22nd, 2019.
    • Legacy Profiles viewer, version 6.3.2.530836, September 17th, 2019. Covers the re-integration of Viewer Profiles.
    • 360 Snapshot project viewer, version 6.2.4.529111, July 16th, 2019.

General Viewer Notes

  • The exact streaming services that will be supported by the next CEF update have yet to be confirmed.
  • The Love Me Render viewer is still being re-worked as a result of being “clobbered” by the EEP updates (presumably during the merge process). It is hoped this will be back on track soon.
  • The first viewer to be built entirely using the new build process using a recent version of Xcode (OS X) or Visual Studio 2017 (Windows) is still waiting to see the light of day.

Graphics / ALM / Code paths

  • The previous CCUG meeting raised the topic of possibly removing the ability to disable the viewer’s Advanced Lighting Model (ALM).
  • Vir emphasised that the idea is just a point of discussion, and not indicative of any decision having been made.

Graphics support is a whole lot of different possible code paths, which means there are tons and tons of options, [so] you can slice it and dice it lots and lots of different ways which makes it into a maintenance and update nightmare. So the more we can streamline it and say stuff works in particular ways, makes it easier to keep it working and to fix things when they go wrong. So, we don’t have any immediate plans to change Advanced Lighting, it’s just something we raised to gauge what usage patterns there might be.

– Vir Linden

Jelly Dolls / Avatar Rendering

  • Vir’s idea to render jelly dolled avatars as basic human form, sans attachments, is apparently proving more complicated a move than at first thought.
  • He’s not entirely surprised by this, considering all that an avatar made include: animations, shape deformations, etc.
  • Animations can particularly problematic when they are being used to deform the skeleton into a non-human form, and the system wants to render the avatar in a human form.
    • Allowing the animations to run means allowing them to deform the avatar shape.
    • Turning the animations off means leaving the avatar shape in a human form but stuck in the T-pose position.
  • The solution to the above issue would appear to be setting a stand animation that runs locally (i.e. in any viewer that is set to render the avatar as a jelly doll). However, this can require additional adjustments to be rendered correctly in a viewer.
  • Further local animations may be required to cover situation when a jellied avatar uses things like default sits, adding further complexity to the work.

In brief

  • There has been at least one report of the EEP viewer causing periodic freezes as if the texture cache being purged. While EEP should not have altered how the texture cache works, and as no bug reports have been filed on the issue as yet, LL ask that those have similar issues regularly / semi-regularly report them.
  • Some have noticed that EEP has altered how specularity is rendered where materials have been used. This is a known issue LL are investigating, as per BUG-228781 and BUG-228581.
  • The idea of an inventory tagging system was raised (e.g. to easy inventory sorting / searching, etc). Sort form answer: while there are benefits for some form of limited tagging, there are no plans to implement anything in the foreseeable future.
  • The question was asked on why Twitch allows VR Chat streaming but not Second Life. Short form answer: because that is what Twitch has decided (at least at present).
  • Next meeting: Thursday, June 4th, 13:00 SLT.

2020 Content Creation User Group week #19 summary

Grauland, March 2020 – 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, May 7th 2020 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.

SL Viewer

No further updates this week, leaving the current crop of in-flight viewers as:

  • Current Release version  version 6.4.1.540593, dated April 27th, promoted May 4th. Formerly the Zirbenz Maintenance RC viewer – NEW.
  • Release channel cohorts (please see my notes on manually installing RC viewer versions if you wish to install any release candidate(s) yourself):
  • Project viewers:
    • Copy / Paste viewer, version 6.3.5.533365, December 9, 2019.
    • Project Muscadine (Animesh follow-on) project viewer, version 6.4.0.532999, November 22, 2019.
    • Legacy Profiles viewer, version 6.3.2.530836, September 17, 2019. Covers the re-integration of Viewer Profiles.
    • 360 Snapshot project viewer, version 6.2.4.529111, July 16, 2019.

CEF Viewer

The “special release” CEF RC viewer, version 6.4.1.541204, does contain the anticipated codec, etc., updates. However, it is classified as a “special” release at this point in time, as it includes some “short cuts” taken in the build process in order to get it out as a proof-of-concept for the Adult Swim event.

The recommendation is that TPVs should not adopt the code from this particular build, but to wait until a more formalised RC release of the CEF updates is made.

See: Exclusive Adult Swim Second Life Event: Introducing Live Video Streaming in SL (Linden Lab) and Adult Swim special streaming event in Second Life (this blog).

OpenGL Replacement

As has been noted in this blog and elsewhere, Apple is deprecating OpenGL. This has raised questions over the last several months about the future of graphic support in SL for OS X.

Currently, one of the routes under consideration is to undertake a complete switch-over (Windows and OS X) from OpenGL to using Vulkan.

  • This is not a final decision, it is just one option under consideration, albeit one that is getting a good degree of thought.
  • Numerous pros and cons have been identified with such a switch. However, more analysis is required before a decision is made – e.g. overall impact on shaders, etc.
  • Even with any shift there are crucial questions to be asked, including how might it impact users on older, lower-spec systems. To help determine this, an upcoming RC viewer from the Lab will have some additional data collection code that will check to see if systems have / can support Vulkan.
  • Vulkan could potentially streamline some of the alpha sorting issues seen with OpenGL, and might also provide some general performance improvements.
  • There is a temptation when running a major graphics overhaul to try to include additional work as well, leading to drawn-out projects (a-la EEP). To avoid this, were a move to Vulkan to be made, LL will likely go for a focused implementation of Vulkan support, with broader graphics / shader work positioned as future follow-on work.

Advanced Lighting Model

With regards to any graphics system update, it is possible that the requirement to run with the viewer’s Advanced Lighting Model (ALM) always enabled might become universal. LL are aware that many people run the viewer with ALM disabled, and so are curious as to how much impact any decision to make it universal might have.

Part of the problem here is that people disable ALM for a variety of reasons. For example:

  • Those on metered / slow connections may disable it, to avoid having the additional load of downloading materials information (normal and specular maps).
  • Some disable ALM in the (not always accurate) belief that it carries a heavy performance hit, which is not necessarily true (e.g. enabling ALM on its own generally doesn’t place too much overhead on a system, but enabling ALM and shadows rendering does – so the trick is to turn of shadows via their own drop-down, rather than disabling ALM entirely).

In brief

  • The viewer’s bandwidth usage was raised  – notably the 3000 Kbps upper limit, and whether this was still valid in the era of fast connections people can access. Whether the limit is still valid or not is unclear (particularly how higher limits might stress the servers in terms of requests for information), however, it is seen as something the Lab could potentially look at.
  • Caching viewer: the upcoming viewer with updates to the cache is primarily focused on the VFS cache. If this is successful, it is possible the texture cache may be folded into the same structure.
  • Official Linux viewer: not news. The idea of the Lab providing (with third-party contribution support) a core Debian package & leaving the libraries to TPVs / self-compilers to determine based on the flavour of Linux they want to use is essentially at a standstill due to lack of resources.
  • Next meeting: Thursday, May 21, 13:00 SLT.

2020 Content Creation User Group week #18 summary

The Getaway – Nutmeg, March 2020 – 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, April 30th 2020 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 recording software crashed some 2/3rds of the way through the meeting (and I was afk, so didn’t spot it), so I missed recording around the last 15-20 minutes of the discussions.

Jelly Dolls / Avatar Rendering

  • As noted in my week #16 CCUG summary, Vir has been looking at the jelly doll rendering code, which is not well optimised (e.g. it still draws rigged attachments) and it handles some operations inconsistently (e.g.setting an avatar to never render is actually more processing expensive that simply leaving it jelly dolled).
  • One of the things Vir has been experimenting with is displaying Jelly Dolls as monochrome system avatars sans rigged mesh and attachments.
  • An issue with this approach  is that non-human avatars use animations to reposition bones and joints, when can result in the system avatar looking very weird, even in monochrome. Vir has therefore been focused on finding a way to pause the animations when a non-human avatar is jelly dolled, and just running something like one or two of the default animations from the system locomotion graph.

In brief

BUG-228564 -Feature Request: New object property “Intangible”

This is possibly a duplicate request (those listed on the Jira are for different functionality, so not true duplicated), requesting an option to make certain in-world objects “invisible” to the viewer’s ray casting, so they they do not react to mouse clicks, but the objects beyond can.

Such a capability would be useful where semi-transparent objects are used to imitate sun beams or fog or rain, etc., otherwise block the ability to click on objects (e.g. seats, etc.), they surround / are in front of. However, such a change would require both viewer-side and back-end changes so, even if the Jira isn’t a duplicate of an existing request and is something LL accept, it is unlikely to be worked on until after the cloud uplift work has been completely, simply because it will require the introduction of a new object property on the simulator side / back end.

Education / Awareness

Much of the meeting was a general discussion on how to better inform / educate creators and users on the benefits of optimised content, and exactly what can impact things like perceived SL performance.

The major crux of this discussion came down to providing better documentation / information that both creators and users could be pointed to (e.g. more detailed information on mesh creation, including topics such as LOD generation, tri counts, use of maps, etc. for the former; clearly-worded instructions and benefits of using tools like ARC, etc., in the viewer to improve performance, etc., for the latter).

  • It was pointed out that LL have limited resources for the production of comprehensive best practices, and that perhaps the best sources for these might be creators themselves.
  • As the SL wiki is currently closed to general editing, those who have a specific desire to edit wiki pages / build articles can request access by sending an e-mail outlining who they are and why they want access to: letmein-at-lindenlab.com.