2018 SL UG updates #14/2: CCUG summary

Animesh dragons by Wanders Nowhere and used by Lucia Nightfire as Animesh test models

The following notes are primarily taken from the Content Creation User Group (CCUG) meeting, held on  Thursday, April 5th, 2018 at 13:00 SLT. For the purposes of Animesh testing, the meetings have relocated to the Animesh4 region on Aditi, the beta grid – look for the seating area towards the middle of the region. The meeting is chaired by Vir Linden, and agenda notes, etc, are usually available on the Content Creation User Group wiki page.

Medhue Simoni Live streamed the meeting, and his video is embedded at the end of this summary. My thanks to him for providing it. Time stamps are included in the text below to allow easy referencing to the video for details. Please note that Vir’s microphone was not behaving during the meeting, causing his voice to drop-out at times, breaking up the context of his conversation (I had the same issue with my audio recording).

Bakes On Mesh

Project Summary

Extending the current avatar baking service to allow wearable textures (skins, tattoos, clothing) to be applied directly to mesh bodies as well as system avatars. This involves server-side changes, including updating the baking service to support 1024×1024 textures, and may in time lead to a reduction in the complexity of mesh avatar bodies and heads.

This work does not include normal or specular map support, as these are not part of the existing baking service.


Current Progress

The project viewer is now available – version, which as noted in previous updates, was released on March 30th. This is the first pass of the viewer, and there is much more work to come.

General Notes from the Meeting

[2:55-04:00] Some mesh body creators are already involved in looking at Bakes on Mesh, and the Lab has been gathering names and details of creators, but there has – as of the time of the meeting – been no direct outreach to any of them. Siddean Munro (Slink) is reported to be “thrilled” with the capability, and sees it as a means to dramatically reduce her workflow.

[4:45-5:55] Status of 1024×1024 support: While the first part of the Bakes on Mesh project was to update the Bake Service to support 1024×1024, currently, these back-end changes have not been deployed, so all Bakes on Mesh testing currently use the existing 512×512 textures supplied by the Bake Service. The deployment has been delayed due to other work being carried out on the Baking Service, but it is hoped it will be deployed in the next few weeks.

[13:26-14:22] It terms of 10242 texture support with the baking services is eye textures. Currently 128×128, these will be increased to 256×256, the pixel density on so small a target compensating for the lower resolution.

When  the increased texture resolution support is deployed, the Lab will also be implementing additional servers to support the additional load on the Baking Service.

[6:01-8:49] Wearable/ Texture Map issues: It’s been noted that the eyelashes are tied to the avatar eyeball texture, not the avatar head, which might cause some issues.

The right / left arm being mirrored in the texture map has also been re-noted. This is prompting some creators to consider re-purposing the system skirt or hair wearable (which are now almost never used) to be assigned to one or other of the arms. This would  allow, for example, a tattoo to appear on one arm only, rather than being mirrored on both arms, as is currently the case on system avatars.

[9:52-11:05] In order for this to work, the textures would need to be uploaded as a skirt or system hair. Basically, the system wearables act as containers of the textures, so if you want to apply a texture to a specific body region (as supported by the viewer / Bakes on Mesh), you can assign it to that wearable (e.g. the texture can be applied to the undershirt, shirt or jacket wearable to be applied to the upper body, or to the skin wearable to be applied to the entire body).

Cathy foil also gave feedback on using Bakes on Mesh to apply system eye textures to mesh eyes.

[8:53-9:49] Will the baked texture slots be expanded in to future? (there are currently 6 slots: BAKE_HEAD, BAKE_UPPER, BAKE_LOWER, BAKE_EYES, BAKE_SKIRT, BAKE_HAIR.) Possibly, but not being considered with Bakes on Mesh at present. Currently, the bake texture slots are tied to the supported wearable textures. Adding more slots  would require defining the underpinning data to be stored in the additional slots (i.e. define additional wearables).

[12:10-12:36] One thing to remember is that if an alpha layer in used to hide your system avatar (or a major part of it), it will be baked as well, and if that bake is applied to a mesh, it can end up masking more of the mesh than intended, due to the extent of the alpha.

[14:42-17:02] Hiding the base avatar: a means to hide the system avatar without having to use an alpha mask has long been a request, raised again during the Bakes on Mesh project. No decision has been made on if this will be done or how. One approach might be to make a further change to the Bake Service so it ignores the base avatar; another might be it use an unassigned texture slot to “hide” the avatar from the Bake Service – this has the advantage of not requiring a change to the Bake Service.

[17:29-25:00] A general discussion on how a more flexible use of Bakes on Mesh might be achieved – such as re-purposing rarely used texture slots, or extending the Bake Service itself.

  • Re-purposing texture can be done with care – such as using the skirt or system hair as described above to give individual texture for the arms.
  • Further extensions to the Bake Service itself – e.g. additional bake slots beyond the current 6  are unlikely to form a part of this project, but might be considered for any follow-on that comes after it.

The Lab also have some concerns about opening-up the Bake Service further include the potential for performance hits, possible abuse.

Cathy Foil demonstrates Bakes on Mesh. Left: she is wearing a mesh body with system layer clothing applied to it, as seen through the Bakes on Mesh viewer. Currently, only those using the Bakes on Mesh project viewer will still mesh bakes in this way. Right: until the Bakes on Mesh code is incorporated in all viewers, those running viewers without the code will see avatars using Bakes on Mesh with place holder textures on place of the baked texture.

[25:09-27:35] Extending the Bake Service to support materials: this is a complex step to take, which may not even be properly defined. Maps (diffuse (texture), normal and specular) all have to be defined by layer and brought together properly in a composite bake in such a way to ensure normal and specular maps from one layer are correctly associated with the diffuse map from that layer, so they aren’t displayed over another layer. As such, materials support will only be considered as a potential element for a follow-on project to the current Bakes on Mesh work. See also BUG-214631 for a proposal on how materials support might work.

[33:37-34:11 and 36:40-37:20] Bakes on Mesh for HUDs / Bakes and Textures: conversation on bakes on mesh and HUDs, expansion on Bakes on Mesh vs. appliers, and texture and Bake UUIDs. In short: Bakes on Mesh can also be applied to HUDs, which could help reduce the number of textures commonly found in them (a single composite rather than multiple textures). Complexity of HUDs might also be reduced, simply because the texture applying elements may no longer be required as textures will come via the Bake Service – although applier HUDs for materials will still be required.

Some are concerned allowing bakes on HUDs increases the risk of texture theft (by allowing the textures to be screen capped, for example). However given this can be done anyway, simply by displaying a texture on a cube and then attaching the cube to the screen as a “HUD”, it’s hard to see what the fear really is (it’s also not the most efficient way of wrongly getting a texture out of SL).

[42:40-44:13] Fewer textures: the general hope with Bakes on Mesh is that over time, it will allow mesh bodies  / heads to be less onion layer complex, and also reduce the number of different textures being applied, by allowing layers (e.g. skin, make-up, tattoo, etc.), to be composited down to a single baked texture.

[44:26-45:52] Wearables cap: a reminder that up to 60 wearables can be applied to a single avatar in any combination of layers, and the order in which they are displayed corresponds to the individual layers (e.g. undershirt, shirt, jacket), and the order in which multiple items in those layers are worn. See this 2015 project update for more on the global wearable allowance.

[47:17-47:32] Can local textures be used with Bakes on Mesh? No. local textures are just that, local to a user’s system; they are not transmitted to LL’s servers, and therefore, they cannot be baked.

[48:10-49:00] Bakes on Mesh and Edit Appearance:  it’s been noted that mesh bakes don’t update with changes made in the Edit Appearance mode (see BUG-216014). This is because Edit Appearance is local changes within the viewer, usually applied to the system avatar. Bakes on Mesh require the data to be sent to the baking service, composited, and applied – which only happens on exiting Edit Appearance. Vir has indicated it might be possible to add the logic required to have the appearance editor update in real-time when using mesh bakes.

Animesh Project

Project Summary

The goal of this project is to provide a means of animating rigged mesh objects using the avatar skeleton, in whole or in part, to provide things like independently moveable pets / creatures, and animated scenery features via scripted animation. It involves both viewer and server-side changes.


Current Progress

The revised Land impact formula is still in QA being assessed. Once it passes QA, it will be deployed to the Animesh regions on Aditi.

Vir is working on the LOD / Bounding box issue (see BUG-214736). Part of the issue appears to be the bounding box size calculations can be based on the static mesh, which doesn’t necessarily line up with where the mesh appears when rigged to the skeleton.  Some of these issues are likely to be looked at before Animesh is deployed, other may be held over and looked at a later date.

[27:53-29:52] Viewer crashes: feedback on the project viewer is that few (if any) of those testing it have encountered crash issues with it. Should anyone find they do have specific, repeatable crash issues, they are asked to raise a JIRA detailing how and when the crash occurs. If the crash is related to a specific Animesh model they’ve created, placing a copy out on the Animesh test regions and providing the location within the JIRA is also requested.

[30:22-32:10] Animesh on the Main grid: Animesh cannot be used on the Main grid (Agni) until the simulator support has been deployed. The simulator deployment is in turn dependent in part upon the Land Impact formula testing on the Animesh regions on Aditi, once the formula has been cleared by LL’s QA. When the Lab has confidence in the formula, then a QA pass will commence on the actual production simulator code, which will probably initially be deployed to a Main grid RC channel, or a subset of regions on an RC.  From there it will follow the normal deployment steps across the Main grid.

[50:46-51:24] Animation Playback Issues: it’s been noted that animations already running on an Animesh object don’t necessarily play for those entering the region where they are running, or update correctly when camming to them for the first time, and that Animesh objects in a neighbouring region fails to update (animate), even when in your field of view and draw distance. While Vir thought the cause of the issues had been found, it now looks as if the problems are more complex, and likely won’t be fixed ahead of Animesh being deployed.

Date of Next Meeting

There is no CCUG meeting on Thursday, April 12th, 2018, due to the monthly Linden Lab internal meeting. The next content creation user group meeting will therefore be on Thursday, April 19th, 2018.