SL project updates 2017-7/2: Content Creation User Group w/audio + HTTP assets

The Content Creation User Group has re-formed out of the Bento User Group, and is held at the Hippotropolis Camp Fire Circle. Imp costumes entirely optional :D .
The Content Creation User Group has re-formed out of the Bento User Group, and is held at the Hippotropolis Camp Fire Circle. Imp costumes entirely optional 😀 .

The following notes are taken from the Content Creation User Group meeting, held on  Thursday February 16th, 2017 at 1:00pm SLT at the the Hippotropolis Campfire Circle. The meeting is chaired by Vir Linden, and agenda notes, etc, are available on the Content Creation User Group wiki page.

Core Topics

  • HTTP asset fetching
  • Potential project: animated objects

HTTP Asset Fetching

In 2013 / 2014, the Lab made a huge change to how avatar appearance information and texture and mesh assets are delivered to users, shifting them away from UDP (User Datagram Protocol) delivery through the simulators, to HTTP via Content Delivery Networks (CDNs) – see my past reports on the HTTP updates. and CDN work.

As was indicated at several TPV Developer meetings recently (see here for an example), the Lab has been looking to move more asset types for delivery over the CDN, and this work has now started, with a focus on animations and sounds. This should see improvements in both the speed and reliability of assets, which should be particularly beneficial to animations.

The work is in the early stages, and progress will be tracked through my SL project updates.

Potential Project: Animated Objects

A topic of common conversation at various user group meetings is that of animated objects – e.g. objects which can be animated but which are not necessarily part of the base avatar mesh, and / or things like non-player characters (NPCs).

Decent NPC a possible future project? Lab wants feedback on use-cases for animation objects
Decent NPC a possible future project? Lab wants feedback on use-cases for animation objects

While it is still very speculative, the Lab is considering how this might be done and what sort of applications people would use such a capability for. One idea has already been extensively documented – “created agents”, which are avatars which do not necessarily have a connection to a viewer in order to operate – see feature request BUG-11368.

The main aim would be to use the same base avatar skeleton for this work, as well as it being compatible with existing rigged objects, rather than introducing something like custom skeletons (seen as a much bigger project). A lot would also depend up things like performance impact (if the simulator is operating a certain volume of NPCs or ridable objects, for example, then these could impact on resources which might otherwise be used by avatars, etc).

One potential way of achieving desired results would be to animate rigged meshes using the avatar skeleton, but without necessarily having the actual avatar base mesh underpinning it. For example, when we use a mesh body for our avatars, we use the base avatar, but hide it with an alpha mask, with the avatar skeleton animating the worn mesh. With an animated object utilising the skeleton, there is no real need to have the underpinning base avatar, as it would in theory never be seen.

One issue is that many mesh models are multiple parts, therefore some means would be required to control them, and this could be lost without the base avatar, together with the ability to attach static objects to something like an NPC. Hence the idea put forward in BUG-11368; the “created agent” would effectively be a special object class, providing the means for multiple animated meshes to operate in concert.

It is unlikely that the bone limit for a given object would be raised to accommodate animated objects, as this is pretty much a limit imposed by people’s graphics cards. During testing, the Lab found that if too many joints are defined for a single object, some graphics cards are unable to render the object correctly. This impact has actually already been seen with some Bento content (FIRE-20763).

Other aspects which would have to be considered are things like Land Impact. Avatars don’t have a land impact, but that may have to change in the case of animated, avatar-like objects – again, seen the performance concerns above. There are also some concerns over possible griefing vectors.

Performance-wise a potential benefit would be animated objects would not require alpha swapping, which requires a fairly hefty performance hit – but this could be countered to a degree (and depending on where you are and how animated objects are used) but the volume of animated objects around you.

Right now the idea is still being discussed internally at the Lab – there is no defined project. However, if you have views on things, attending the Content Creation meetings would be a good place to get them heard.

Other Items

Applying Baked Textures to Mesh Avatars

Still under consideration is a project to allow baked textures to be applied directly to mesh avatars (see here for more). This is still under consideration, but has yet to be formally adopted by the Lab as a project.

Modelling for Efficient Rendering

The subject of efficiency and LODs was the focus of an extended conversation. As I reported in my last Content Creation UG meeting report, Medhue Simoni has been producing a series on the use of Level of Detail (LOD) to help with generating rendering efficient models in Second Life. All three parts of the series are now available on his YouTube channel, and he and I will be discussing them in this blog in the very near future.

SL project updates 2017-7/1: server, viewer, “blue world” bug fix

Anduril, Anduril; Inara Pey, February 2017, on FlickrAndurilblog post

Server Deployments

In short, there are no deployments scheduled for this week. The Main (SLS) channel will remain on release 17#17.01.27.323172.

While there had been an RC release planned, it apparently didn’t clear QA in time, so all three RC channels will remain on 17#17.01.27.323172 as  well.  However, all three channels will be restarted on Wednesday, February 15th, in keeping with the Lab’s policy or restarting channels every two weeks, whether or not there is an associated deployment.

SL Viewer

The Maintenance RC viewer updated to version 5.0.2.323567 on Tuesday, February 14th.  As reviewed in this blog, this viewer includes a number of updates and new features, including the ability to select your own preferred folders for uploading image, animations, sounds and mesh models.

Outside of this update, the viewer pipelines remain as per the end of week #6:

  • Current Release version: 5.0.1.323027, dated January 25, promoted February 3 – formerly the Maintenance RC viewer.
  • RC viewers:
    • Love Me Render RC viewer version Version 5.0.2.323361, dated February 9th – rendering pipeline fixes and improvements
  • Project viewers:
    • Project Alex Ivy (LXIV), 64-bit project viewer, version 5.1.0.501863 for Windows and Mac, released on January 10
    • 360-degree snapshot viewer updated to version 4.1.3.321712 on November 23, 2016 – ability to take 360-degree panoramic images – hands-on review.
  • Obsolete platform viewer version 3.7.28.300847 dated May 8, 2015 – provided for users on Windows XP and OS X versions below 10.7.

Nvidia Driver 64-bit Viewer “Blue World” Bug

As I reported in week #4, Nvidia’s release of their 378.49 driver on January 24th resulted in many 64-bit viewer users (TPVs and the Lab’s own Alex Ivy 64-bit project viewer) seeing their Second Life world view turn decidedly blue when running with Advanced Lighting Model (ALM) disabled.

The Nvidia 378.66 driver should fix the
The Nvidia 378.66 driver should fix the “blue world” issue for those using 64-bit viewers with ALM disabled

On February 14th, Nvidia release the 378.66 driver package, and this reportedly fixes the SL issues.

SL project updates 2017-6/2: recap and Love Me Render viewer

East River Community - Blog post
East River CommunityBlog post

Server Deployments – Recap

  • On Tuesday, February 7th, the Main (SLS) channel received the same server maintenance package a deployed to the three RC channel in week #5.
  • There was no planned deployment to the three RC channels for the week.

SL Viewer

Love Me Render

On Thursday, February 9th, the Lab released the first of the new branch of release candidate viewers focusing entirely on fixes an improvements for the viewer’s rendering system. To distinguish it from the current Maintenance RC viewer, the rendering RC has been called (for this release, at least) Love Me Render.

Version 5.0.2.323361 comprises a handful of updates – but as the Lab notes, changes to the viewer’s rendering system can be a little scary, and things can easily go wrong, so huge lists of updates for this type of viewer may not be common. This first round of updates comprises:

  • An improvement to mesh LOD calculation (account for CTRL+0).
  • A fix for a mesh avatar deformation issue, which was due to bounding box / LOD swaps.
  • A fix for the issue where some mesh becomes invisible when camming. This was due to an earlier fix for another issue (non-public JIRA MAINT-6125).
  • A fix for the bug where setting one avatar to Do Not Render (right-click avatar context menu) caused all avatars to become imposters.

The last item above is related to the Avatar Complexity code, which gets which also gets what might be the most important change in terms of rendering / performance. With this viewer, agents (avatars) which are rendered as “Jelly Dolls” should now have any attachments they are wearing render at 0 LOD.

This change is designed to prevent attachments with high render LOD from being loaded into memory, thus further deterring worn graphics crashers. Note that in order for this improvement to work, you must leave the debug setting   RenderAutoMuteByteLimit at its default of 0.

Remaining Pipelines

The rest of the official viewers list remains as per the start of the week:

  • Current Release version: 5.0.1.323027, dated January 25, promoted February 3 – formerly the Maintenance RC viewer.
  • RC viewers:
    • Maintenance RC viewer, version 5.0.2.323359 released on February 3 – new features, improvements and bug fixes
  • Project viewers:
    • Project Alex Ivy (LXIV), 64-bit project viewer, version 5.1.0.501863 for Windows and Mac, released on January 10
    • 360-degree snapshot viewer updated to version 4.1.3.321712 on November 23, 2016 – ability to take 360-degree panoramic images – hands-on review.
  • Obsolete platform viewer version 3.7.28.300847 dated May 8, 2015 – provided for users on Windows XP and OS X versions below 10.7.

Where Is Everybody?

Regular attendees of in-world meetings cannot help but have noticed that the majority of meetings this week were cancelled, mostly due to scheduling conflicts with internal meetings at the Lab. Normal service resumes in week #7 (commencing Monday, February 13th). As the cancellations for this week included the TPVD meeting for this week, this will also now take place on Friday, February 17th, 2017.

SL project updates 2017-6/1: server, viewer

Sol Farm, Story of Infinite; Inara Pey, January 2017, on FlickrNatural Falls Vblog post

Server Deployments

As always, please refer to the server update thread for the latest information.

On Tuesday, February 7th, the Main (SLS) channel received the same server maintenance package a deployed to the three RC channel in week #5. This includes a follow-up to fix BUG-3286 “Can’t move object” fail notifications, which was partially fixed in an earlier deployment. This release should also see some improvement  in off-line IM and group notice delivery.

There is no planned deployment to the three RC channels for the week.

SL Viewer

The release viewer updated to version 5.0.1.323027 on February 3rd. This was formerly the Maintenance RC update with some 42 fixes and improvements.

A new Maintenance RC viewer, version 5.0.2.323359 was released on February 3rd, which contains new features, improvements and bug fixes. You can read an overview of the release features here.

Outside of these changes, the remaining viewers in the various official pipelines are:

  • Project viewers:
    • Project Alex Ivy (LXIV), 64-bit project viewer, version 5.1.0.501863 for Windows and Mac, dated January 10th
    • 360-degree snapshot viewer, version 4.1.3.321712, dated November 23, 2016 – ability to take 360-degree panoramic images – hands-on review – still pending completion of work on the 64-bit viewer, and no updates expected in the immediate future
  • Obsolete platform viewer, version 3.7.28.300847, dated May 8, 2015 – provided for users on Windows XP and OS X versions below 10.7.

Simulator User Group and Content Creation User Group Meetings

Due to scheduling conflicts with internal meetings at linden Lab, there was no Simulator User Group meeting on Tuesday, February 7th, and there will be no Content Creation User Group meeting on Thursday, February 9th. The dates for the next of these meetings are:

Nvidia Driver 378.49 + 64-bit Viewer Bug

As I reported in week #4, many people on 64-bit viewers are seeing their Second Life world view turn decidedly blue. The issue is only encountered when Advanced Lighting Model (ALM) is disabled in a 64-bit viewer, although it can have odd behaviour (e.g. get it on one viewer, then launch another 64-bit viewer and it many not occur with that viewer).

The Nvidia 378.49 driver bug which can occur with 64-bit viewers when ALM is disabled, as seen on a 64-bit version of Windows)
The Nvidia 378.49 driver bug which can occur with 64-bit viewers when ALM is disabled, as seen on a 64-bit version of Windows) – this is not fixed by the recent 378.57 Hotfix issued by Nvidia

The cause of the issue appears to lie with the Nvidia 378.49 driver, released on January 24th. A Hotfix for the driver was released on January 31st (378.57), but this does not fix the SL “blue world” issue.

SL project updates 2017-5/1: server, viewer

Sol Farm, Story of Infinite; Inara Pey, January 2017, on FlickrSol Farmblog post

Server Deployments

As always, please refer to the server update thread for the latest information.

  • There was no deployment for the Main (SLS) channel on Tuesday, January 31st, although the regions on that channel were restarted in keeping with the Lab’s policy of restarting regions every 2 weeks, regardless as to whether there is an accompanying deployment.
  • On Wednesday, February 1st, all three RC channels should receive the same new server maintenance package. This includes a follow-up to fix BUG-3286 “Can’t move object” fail notifications, which was partially fixed in an earlier deployment. This release should also see some improvement  in off-line IM and group notice delivery.

SL Viewer

The Maintenance viewer RC was updated on Monday, January 29th to version 5.0.1.323027 (dated January 25th). Otherwise, all other viewers in the current pipelines remain unchanged from the end of week #4:

  • Current Release version: 5.0.0.321958, dated December 1st, promoted December 5th, 2016 – formerly the Project Bento RC viewer
  • Project viewers:
    • Project Alex Ivy (LXIV), 64-bit project viewer, version 5.1.0.501863 for Windows and Mac, dated January 10th
    • 360-degree snapshot viewer, version 4.1.3.321712, dated November 23, 2016 – ability to take 360-degree panoramic images – hands-on review – still pending completion of work on the 64-bit viewer, and no updates expected in the immediate future
  • Obsolete platform viewer, version 3.7.28.300847, dated May 8, 2015 – provided for users on Windows XP and OS X versions below 10.7.

Non-Player Characters

There has been an ongoing debate about implementing non-player characters (NPCs) in the form of “created agents” or “scripted agents” (essentially avatars), which can exist in-world without the need for a controlling viewer / client. See feature request BUG-11368 for more.

NPCs are not new to SL, and it had been hoped that Pathfinding (introduced in 2012) would lead to an uptick in their use. However, Pathfinding has never really received widespread acceptance / use, and still carried with it many of the limitations in using “bot” based NPCs – such as the need for each bot to have a direct connection to a managing viewer / client.

Scripted agents, by virtue of using the existing avatar system, coupled with being a new class of object would overcome many of the limitations and issues with the current approach to NPCs and other creature creations. However, implementing such a system is seen as a major undertaking, and one with some major hurdles to clear were it to become a project.

If agents (avatars) were to be used, for example, how can they be kept “alive” when there is no controlling client / viewer connected to them? At the very least a new class of hybrid avatar / object would need to be developed (complete with inventory support). If these agents are to be used to provide things like animals – horses, etc., – there is then potentially the problem of how to change the system so that one avatar can ride another (e.g. your avatar on the NPC horse avatar), and so on.

Currently, there is no planned project to take-on NPCs of this kind – but they are a repeated topic of conversation at Simulator User Group meetings, and it is an idea some at the Lab have been mulling over.

Next Meeting

Due to scheduling conflicts, the next Simulator User Group meeting will be on Tuesday, February 14th, 2017.

SL project updates 2017-4/2: Content Creation User Group w/audio

The Content Creation User Group has re-formed out of the Bento User Group, and is held at the Hippotropolis Camp Fire Circle. Imp costumes entirely optional :D .
The Content Creation User Group has re-formed out of the Bento User Group, and is held at the Hippotropolis Campfire Circle. Imp costumes entirely optional 😀 .

The following notes are taken from the Content Creation User Group meeting, held on  Thursday January 26th, 2017 at 1:00pm SLT at the the Hippotropolis Campfire Circle. The meeting is chaired by Vir Linden, and agenda notes, etc, are available on the Content Creation User Group wiki page.

Core Topics

  • Potential follow-on projects
  • Modelling for efficient rendering
  • Animations
  • Outfits

Follow-up projects

There has been no further progression on the potential follow-on projects from Bento (see my week #2 Content Creation Group meeting report for details of follow-ups).

  • In terms of the baked texture on mesh idea, the Lab has asked for specific content there “onion” meshes are used – and it has been reiterated this is most of the common mesh bodies and heads
  • There is still some confusion as to what may be causing the animation conflict issue. While it may be that changes will be made to the animation system in the future, as per the suggestions Vir forward previously (see the link above), the solution for now is to try to address the issue at a scripting level to prevent conflicts.

Modelling for Efficient Rendering

Medhue Simoni has been producing a series on the use of Level of Detail (LOD) to help with generating rendering efficient models in Second Life. Part 1 is embedded below, and Part 2 can be found here. A third part will be available soon, and hopefully, he and I will be producing a companion article in this blog once that part is available on-line.

Efficient modelling for Second Life has long been a problem within the platform, and something exacerbated by the arrival of full mesh support. Given this:

  • The Lab is considering revising the rendering cost calculations “at some point” to encourage people to consider more efficient models (e.g. making more use of normal maps to add detail to models where appropriate, rather than rely on always producing an extremely high poly count model).
  • It has been suggested that providing some basic indicators of what might be considered “reasonable” number – poly counts, proportionate scaling of LODs, etc. – for models could be produced, together with videos (by content creators with a solid understanding of the subject and Second Life)  on efficient use of normal and specular maps
Using a normal map to enhance the detail on a low-polygon model
Using a normal map to enhance the detail on a low-polygon model. The image on the left shows a model of some 4 million triangles. The centre image shows a model with just 500 triangles. The image on the right shows the 500-triangle model with a normal map taken from the model on the left applied to it. Credit: Wikipedia

The discussion broadened to cover awareness among content creators as to what actually works and where falsehoods / misunderstanding lie. A cited example in the meeting was that of mesh clothing makers avoiding the use of normal maps because they want their clothing to look the “same” to everyone, even though doing so can severely impact the user experience for those on lower-end system, and thus discourage users from buying their goods.

.BVH Animations and Animation Playback

Animations can be uploaded to Second Life in one of two formats, .ANIM and .BVH. The latter are optimised as a part of the upload process, and this is proving to be a particular problem for Maya users when animating facial expressions. These require finer bone movements in the animation, which the optimisation process is filtering out, requiring Maya users to use exaggerated movements. Blender users can avoid the issue by using .ANIM, which does not pass through any form of optimisation / filtering.

While it is recognised that the thresholds used by the .BVH optimisation / filtering process may not be the best for very small bone movements, there are currently no plans to alter / refine the .BVH uploader. Nor is it really feasible to adjust the thresholds for hand and face bones, as this could have an adverse effect where these bones are re-purposed for other uses (as Bento is intended to allow).

There are two possible workarounds which may help with these issues for anyone using the .BVH format:

  • Swap to using .ANIM files, which do not go through any similar optimisation process. Unfortunately, this isn’t an option for Maya users, as there is current no .ANIM exporter for Maya, although Aura Linden is working on one in her own time, and is hoping to get time in about three weeks to sit down and finish it
  • Alter the frame rate of the animation itself – so rather than creating it at 30 fps, try 15 or 10 fps, depending on the animation.

There was also some confusion over the maximum file size for animations, as per my 2016 week #25 report, this was increased from 120 Kb to 250 Kb in June 2016. The wiki page on SL limits has now been correctly updated to reflect this. It’s also worth noting, as an aside, that animations will be moving to delivery via the CDN network in the future.

There was an extended conversation around Outfits and the Outfits folder. While much of this revolved around the Visual Outfits Browser option for Outfits, a couple of significant items were discussed.

The first was on the subject of saving gestures with outfits. As noted in my Bento update #26 and Bento update #27, gestures cannot be automatically saved with an outfit, but can be manually added as links / copies. However, Medhue Simoni has found a catch: should the outfit ever be re-saved, the gestures are removed. Expect a JIRA soon

A common request for the Outfit system to allow nested folders once more the ability was removed with viewer 2.1 (see VWR-19774), and while it was at the time noted as a possible “priority” item for consideration by the Lab, the topic has only recently again come up in internal conversations as a result of feature request BUG-41826. However, the amount of work involved to make it happen makes it unclear if the request will be accepted.

One request for Outfits which is unlikely to be acted upon, is to have links to other folders in addition to objects. This is seen as even more complex than allowing nested folders within the Outfits hierarchy.

Next Meeting

The Next Content Creation User Group meeting will be on Thursday, February 16th, 2017.