Wednesday, 17 August 2011

postheadericon Mesh in SL: The Good, the Bad and the Downright Ugly

Isle Bloom - My first mesh product for SL and my official pipeline guinea pig.

Finally, that day has come.

The day when I can throw off the shackles of the rudimentary builder, free my tortured prims for a better life and not have to toil over a hot PC unit for hours trying to get a sculptie to simply do what I want. Proper UV-mapping. Painting worry-free, seamless textures on flat surface maps. Sharp-edged objects.

That's right, my Linden Lab-born brothers and sisters: Mesh. Mesh has arrived.


Well. Sort of.

Mesh has arrived, but with some pretty strict limitations that won't smile upon individuals who aren't familiar with any grass-roots 3D development. Limitations that even I am having trouble with, and I started this art form creating low-polygon models. Limitations that, when mentioned, will drive such terror down your spine you might as well be standing in the ninth realm of the underworld:

Prim Equivalent.

I know whoever thought this up must have been doing their best to take into account how people would abuse things like polygon count. They must have known how the servers would cripple under the sheer number of vertices individuals end up with when they're making a 3D model and they have no idea what the heck they're actually doing. They meant well, right? Right?
To be fair, I know that the system Second Life runs on is already optimized to use Primitive Objects (you know, the prims we all know and love) within the perimeters that the system has been developed. Second Life is comfortable using those objects, and it has been comfortable using those objects for years (so to speak) and introducing built-from-scratch mesh objects that may-or-may-not jive with the program may-or-may-not cause it to work as well as the prims it's grown up with.

What makes me a bit miffed, as a developer and builder, is the fact that I absolutely must come up with my own separate Levels of Detail (LOD) in order to keep the Prim Equivalent down. I am often making 3 or 4 separate 'versions' of a single object, because I downright refuse to use the near-useless LOD generator integrated into the Mesh Upload menu. I swear it has a personal vendetta to break down the Level of Detail of everything in the absolute ugliest way possible. Like it's jealous or something.

Working on the breakdown process for the Isle Blooms.

Basically, in order for me to make a mesh object that works very well LOD-wise, won't bog down the system and won't take up a huge number of prims when I rez it, I need to make 3-4 types of the same object instead of just one. To get a good result, I need to do four times the work. Four times the work. Not that doing '___ x the work' of a normal 3D workflow is anything strange for Second Life, but this time it's particularly daunting, considering that making meshes from scratch is much more liberating.

Fortunately for myself, I can work around these issues while still maintaining a reasonable prim count at object size and quality. It just takes time.
Unfortunately for others, the freedom they felt being able to create something easily will be replaced by the task of actually learning a professional skill. It really takes all the fun out of it, unless you like the challenge of learning new things and are wicked-good and everything you touch turns to solid gold.

One of the worst things about this is that it limits the amount of new content coming into Second Life. It will be awhile for a decent assortment of good mesh products (that aren't templates being used over and over again) comes into existence anywhere. Sure, products will slowly leak in, but the really good content will be determined by people who can actually develop good 3D content. Specifically for people who develop good 3D content for games. And this is why:

They know how to create content for games!

Something that I'd been trying to convince people of for years since sculpts came out was to use their skills to learn how to develop low-poly, industry workflow 3D content. There were a few people who made this transition really naturally, because they were constantly experimenting and are aware of Second Life's limitations. Most didn't. A lot of people seemed to assume sculpts and mesh work exactly the same way, because they both use mesh objects to create a final product.

I can't even count the number of sculpts-imported-as-mesh objects I've seen floating around.  It's almost embarrassing. (And no, don't be telling me you don't understand why your tiny mesh object is over 8 prims when it's not even the size of a potato. It's a mesh-uploaded sculpt. You have 2048 polys on that object. I can see it in wireframe mode.)

Whether we like it or not, the workflow for Second Life Mesh is basically identical to developing for games. People keep thinking that since Second Life can import mesh, they can throw any model into the system and it'll end up preforming like a 'regular' game, but that's not the case. Many of the tricks and the know-how involved in creating great looking, fast-loading 3D models for video games is largely due to optical illusion, conservative low-poly modeling and a very keen eye for topology.

And in a future blog post/tutorial, I'll not only explain what that is, but also how to use it to develop your own models.

Because I'm awesome like that.