Tuesday, December 20, 2011

Opinion: A Look at What Went Wrong With Mesh

Okay, I should have written about this a long time ago, but better late than never.

In Daniel Voyager’s Blog, the launching of Mesh in Second Life was listed at the top of his list of biggest news stories in Second Life for 2011. While certainly an important development, just how big an impact did it have for the average resident

In my opinion, Mesh has been much less important to Second Life than the earlier hype implied. Compared to earlier major updates such as Voice and Windlight, it has been much less important. Blogger Tateru Nino expressed similar views, “the new Mesh content type has had less impact on the Second Life grid than any other new content type that I can recall. In fact, it seems statistically insignificant.”

I haven’t written much about Mesh. This is mainly because Mesh was designed for use by Viewer 2 and 3. My computer cannot use those, as well as the Firestorm third-party viewer which is based on Viewer 2 technology. The viewers I’ve used, mainly Singularity to cut down on lag, have been unable to see Mesh objects as anything but distorted shapes. I once saw a mesh avatar, and to me it looked like a head next to a huge pillow. While Team Phoenix has been working on a mesh-compatible Phoenix Viewer, 1.6.0, I have yet to see anything Mesh. When I tried the Mesh-compatible Phoenix, it kept crashing.

I’m not exactly alone. Someone once stated 90% of Second Life residents are still using either the old Viewer 1.23, or third party viewers. This might be an exaggeration, and doesn’t take into account Firestorm and it’s use of Viewer 2 technology, but this shows the main reason Mesh hasn’t had the impact on the Grid that was earlier predicted: most people are not using the viewers that can see it. Naturally, this would discourage people from building and buying mesh objects.

Another problem is what builder Lomgren Smalls called “Prim Equivalency.” Mesh was touted as making builds that were a more efficient use of computer power. One lady tried making a tree using mesh, and it ended up the Prim Equivalent of 500 prims! Loki Eliot also had a few words on the matter:

“Mesh on the other hand is a weird creature compared to the familiar prim. It does not have a set shape, does not have a set numerical count. You rez a mesh and the viewer tries to calculate a Prim Equivalence (PE) so it can conform to the current system and this PE is effected by a number of factors - Size, Physical Weight, Number of Textures or whether it has a script inside. If you Link two Mesh together the PE may increase or decrease depending on factors of the linked mesh. If you link a normal PRIM to a mesh, it may not even seem to count towards the Mesh's PE.”

“A Mesh Objects PE is not set in stone either. You could have an object made with 5 Prims and have a Mesh version that comes in at 4 PE, if you enlarge the Mesh version by a metre or so, it's PE could jump to 8 PE. The Bigger your mesh the more PE it costs. It's a bit confusing and really kills off mesh for large scale use not to mention griefing potential of an object that takes up prim count when enlarging.”

Although Mesh objects can still have a much smaller Physical Weight than their prim counterparts, Prim Equivalency is another reason most builders are sticking with prims.

Then came another issue, one that sank the hearts of many of those who looked forward to Mesh clothing. Mesh outfits will sometimes be a poor fit with one’s avatar, unless one adjusts the shape to fit it.

Vaki Zenovka had a few words on the matter, “mesh opens up a very significant can of worms that Second Life had never really opened before: that of body image. SL always allowed us to create, within certain limitations, the body that we wanted. We could be slender, youthful, and girlish. We could be stacked, sexy, sensual. We could be wiry, androgynous, angular. We could be voluptuous, curvy, womanly. Men, too: from skinny youths to muscular manly-men to pot-bellied bears, SL allows an amazing range of shapes…and that’s just the humans.”

“here’s the mesh problem: so many of us have struggled for years in real life with our body images, for whatever reason. So many of us dread the chore of going shopping for clothes and wading through options that don’t fit, or hang funny, or gap in places they shouldn’t gap. We hate it because society makes clothes for an ideal shape which is not our own. We hate it because it reminds us that our bodies are not easily mutable, and we cannot change the things about us that feel, for whatever reason, alien.”

For some, the Mesh upgrade has meant an uncomfortable detail of real life has crept into Second Life. That is, unless Mesh clothing is not considered an option.

By all means, Mesh is still a useful feature. If nothing else, it's shown the promise for new and better graphics. As some such as Pooky Amsterdam have demonstrated, the detail it allows makes for some great Machinina effects when everything works well. Unfortunately for use by the masses, it still needs work. And because of the bias of many residents against newer official viewers, it will need the assistance of third party viewers to reach the majority.

Bixyl Shuftan


  1. The inclusion of Mesh brings SL on par with other video game systems, ALL of which are totally based on Mesh. Build on the Quake engine? You'll be making Meshes. Build for Unreal? Guess what you are going to be making? And guess how many tools are out there for making meshes, free and commercial?

    Mesh incorporation will be slow because a) the professional mesh makers are not in SL yet because until now, no mesh has been here. So it will be a little time before they hear about SL having mesh and wander in. b) way too many viewers don't support mesh, and those content creators who run such who can make meshes aren't eager to dump their favorite viewers just to use Mesh.

    This is quite different from how sculpts and voice were rolled out. The new viewer came out and if you didn't have a viewer capable of using them, you didn't log onto SL. Something similar needs done this time too. Put out the code for mesh to all the TPV folks and say that in 3 months, everything has to be a mesh-capable viewer to be able to get into SL. That's plenty of time for folks to add it to their code. Anything else will simply create a world where two people running two different viewers will see two different things, which doesn't just break SL, but shatters it.

  2. Mesh is an interesting creature that I believe was implemented poorly in the confines of SecondLife. While in most existing game engines, one would think that a Mesh object would count as a single object in the scene, with complexity of the object being calculated as impact (after all, we don't want 1 million polygon models on a sim) we instead see this legacy limitation as applied to calculating the land impact via the existing prim limits.

    When we take many prims and consolidate them into a single merged model in a 3D program, the program isn't counting the prims it used to make that model any longer, and thus the model becomes optimized for the scene (within reason). When models are further optimized as low-polygon real time models for usage in game environments or virtual worlds, it becomes very odd to see a prim equivalent attached to that single model even though it constitutes one 3D object in the scene.

    A good example is in ActiveWorlds where one 3D object (which is mesh in .x,.rwx or .cob) counts as a single object in the world and the cell limit is calculated based on the script and land impact. Each Cell in the grid in-world has a maximum memory impact for items and commands.

    In this manner, a single Mesh 3D object imported in the the virtual world does not suddenly count as multiple objects which becomes a voodoo science at best in calculation, but instead has a solid and definitive impact on the cell limit as defined by memory allocation.

    Unfortunately, because the SecondLife business model heavily relies on the Prim equivalent across the board - from how much land costs, to how much you can put on that land, and even to computational lag for both server and client, introducing Mesh in SecondLife meant that in order to preserve the legacy model of economy and existing methodologies, those Mesh objects had to be arbitrarily restricted and tied to the legacy methodologies for calculation.

    If the issue was a concern about complexity and stress on the servers and clients in rendering them, then the answer would have been to address this problem via an LOD rendering system which can adjust the tessellation fidelity in real time, keeping the complexity at a par.

    Instead, the underlying failures of mesh stem from existing technology "lock-in", as Jaron Lanier would put it. Whereby existing business models or technologies artificially restrict the innovation of new paradigms where a much better innovation would have come to pass had that pre-existing system not been a defining factor as a basis for limitation.

    As for why there seems that many more people are using the older viewers versus the newer ones, I may be able to shed light on that...

    For me, the difference between a non-mesh viewer (like Firestorm 2.5.2 beta) and a Mesh enabled viewer (3.x +) is that of 26FPS with basic shaders and atmospheric shaders enabled, yet on a Mesh enabled Viewer, the same graphics settings give me 8FPS at best.

    The OpenGL implementation was borked in the transition, and it seems that any specific workarounds that solved the problems prior and stabilized the experience were lost. So for myself, it boils down to whether or not mesh is worth the trade off to 8FPS (or 20FPS if I disable all shaders). To me, it's not a worthwhile tradeoff when I know that Mesh alone does not warrant that drastic crippling of the experience in any other case.