Editorial: Why Unoptimized Mesh Bodies and Content Are a Problem in Second Life—And Why Most SL Users Don’t Care

Have you joined the RyanSchultz.com Discord yet? You’re invited to be a part of the first ever cross-worlds discussion group, with over 300 people participating from every social VR platform and virtual world! More details here


Image of a well-optimized mesh avatar body with a lower triangle count
(from New World Notes)

I am going to broach an unpopular topic in Second Life. (Some have even warned me that I might get hate mail from some readers.)

Wagner James Au has been writing his blog about Second Life since the very beginning of the platform, and he has seen a lot come and go in his time. One of his regular rants lately has been about just how horribly unoptimized and inefficient many of the modern mesh avatar bodies are in Second Life. (Frankly, it’s not just mesh bodies; there is quite a bit of other poorly-constructed content in SL—houses, furniture, decorations, etc.—with sky-high rendering costs. Part of the problem is that Linden Lab doesn’t want to break any old content if they can help it.)

Why is this so important? Well, the more complex your avatar is, the more effort it takes for the graphics card in your computer to calculate and display what you see correctly on your screen. And it’s not just your mesh avatar; it’s everybody else’s mesh avatar who is on the same sim as you, plus all the scenery around you, too! Every Second Life user has experienced irritating delays in rendering scenery when they first spawn on a new sim, and significant lag at busy events where there a large number of avatars to render. These problems have been going on for years and years now.

The problem is that Wagner is pretty much beating a dead horse with his critiques. Most Second Life users care only about how good their avatar looks, and they don’t know (or don’t care) about how much unoptimized mesh content negatively impacts SL and other users, particularly those on older, slower computers. I myself have an absolute beast of a gaming computer, built especially to support my Oculus Rift VR headset and to run VR games and apps at the requisite 90 frames per second (to avoid VR-induced nausea). I routinely run my Firestorm viewer for SL at the maximum, Ultra quality settings, and usually my computer handles everything just fine.

Linden Lab well knows that this can be a problem, and some years ago they introduced something called the Avatar Rendering Cost (ARC for short). Here’s a summary of how ARC is calculated. Basically, it is a figure calculated for each avatar on a sim, based on whether they have a classic or mesh avatar, what they are wearing (clothes, hair, shoes, accessories), etc. Showing the ARC on yourself and other avatars is easy to turn on in Firestorm: just press Ctrl-P to bring up the Preferences panel, click on the General tab on the top left-hand side, and check the box next to “Show avatar complexity”:

Many SL viewers will allow you to automatically derender avatars whose ARC is above a certain limit (which means offenders will appear as the so-called “jelly dolls”). This feature can improve Second Life performance significantly for some users. (Like I said, I have my settings adjusted to properly view everybody around me on a sim, regardless of how high their ARC is. I want to see what everybody is wearing, dammit! I often find new stores to visit and new things to buy by doing a right click/inspect on avatars around me. I can’t do that if they are derendered! But obviously, there is a significant rendering cost on my computer, especially at busy events.)

But today’s discussion of this topic on the #second-life channel on the RyanSchultz.com Discord server really brought home to me just how serious the problem of unoptimized, inefficient mesh can be in SL. Recently, a Second Life vlogger named Cassie Middles created a chart showing how many triangles make up each of the popular mesh bodies. (Here’s a direct link to the Google spreadsheet she created. The higher the number of triangles, the more complex the object, and the harder your computer graphics card has to work in order to render it properly. As well as everybody else’s computer.)

One of the mind-blowing facts I learned today is that the brand new Legacy mesh body (just the naked body with hands and feet, without any clothes, shoes, jewelry, a mesh head, hair, etc.) comes out to a whopping 794,368 triangles!

To put that astronomical figure into some perspective, someone said that that number is significantly higher than the rendering cost of an entire match of Overwatch players (two teams of six avatars each, at an average triangle count of 40,270 triangles per character, for a total of 483,240 triangles). That is truly insane! And the feet alone on the new Legacy mesh body come to 380,368 triangles! Mind you, most games are deliberately designed to be as optimized as possible, but nobody needs that level of complexity! It is complete overkill.

But, as I said, writing about this is kind of like closing the barn door after the horse has bolted. There is really no incentive for mesh body makers (and other mesh content makers) to create and sell better-optimized mesh in Second Life, and no penalty if they don’t. Linden Lab does not ban or restrict avatars for having very high rendering costs. For example, here is one outfit I put together for my main avatar, Vanity Fair, which has a total Avatar Rendering Cost of 702,597! This means that, when I wear this lovely outfit to a place like Frank’s Jazz Club, I am pretty much seen as a jelly doll (i.e. derendered) by everybody around me. In other words, I am only dressing to be seen by me.

If I take off the three sets of shimmery flexiprims that are part of the skirt of this beautiful gown, the ARC drops to 108,365. If I remove the jewelry, the ARC goes down to a quite reasonable 59,575 (some older jewelry in particular can be quite badly optimized):

Even making these simple changes to an outfit can make a big difference to performance (for you and others), especially at crowded events.

So, even though it might be a losing battle, I might just decide to add my voice to Wagner’s about the proper optimization of mesh content in Second Life. I still think it’s a losing battle, though. Most SL consumers could care less.

I think that the best that we can do at this stage is two things:

  1. Promote awareness of the problems of unoptimized, inefficent content among Second Life consumers (for example, including triangle counts or some other complexity measurement in SL Marketplace listings of products);
  2. Educate SL content creators to make more efficient mesh by using proper decimation and other techniques in tools such as Maya, 3ds Max, and Blender.

Yes, it’s an uphill battle, but it’s worth fighting for a better-performing Second Life for everybody, don’t you agree?

Advertisements

An Artist Contemplates Second Life

Wagner James Au of the long-running blog New World Notes has highlighted the work of artist Erik Mondrian, who found himself so inspired by Second Life that it became his MFA thesis at the California Institute of the Arts:

Here, in Second Life, a vast virtual canvas where we create what cannot be, what could be, what was, and what might be again, I step inside the imaginations of people I have never met, and who I may never even have spoken to, understanding something of their inner worlds nonetheless.

— Erik Mondrian.

Here is the entire nine-minute video on YouTube from which this quote was taken:

It’s quite beautiful, and I would encourage you to take a few moments to watch and enjoy it. If you want to see more, there is a playlist of ten videos shot and narrated by Erik here.

Pursuing the Holy Grail of Second Life in Virtual Reality: A New Solution Using Firestorm and SteamVR

holygrail
Obligatory image from Monty Python and the Holy Grail (1975)

I first heard the news from Wagner James Au of the long-running Second Life blog New World Notes: someone has come up with a new way to navigate SL in a VR headset!

OK this is pretty amazing: Someone named Peter Kappler quietly created code to run Second Life in VR via Firestorm and Steam VR, and then posted the source code online. “It’s not a fully working Firestorm,” he allows on his YouTube, “there is still a lot to do. The file I posted is a source file in C++ for coders that wish to maybe work on a VR version for Second Life.”

There have been at least two other attempts to create a VR port for Second Life, but performance has not been impressive — Linden Lab had an experimental client of its own, but discontinued supporting it due to lack of decent frame rate. The demo video…suggests Kappler has come up with a fairly decent port; better yet, by open sourcing his code, he’s encouraging other developers to improve it further.

Here’s the eight-minute demo video Wagner refers to (there’s no sound):

Now, there is no guarantee that this open-source solution (which relies on SteamVR and the Firestorm viewer code) will be able to attain the high framerates required to avoid VR sickness. But it does look somewhat promising!

Second Life was never intended for VR; the platform is simply too dated to support it. Any solution will be a kludge at best. But I do find it interesting that people keep pursuing the Holy Grail of SL in VR, anyways. I wouldn’t mind trying this out myself, just to see how well it works.

Thank you for the heads-up, Wagner!