Monday, 14 November 2011

postheadericon First Mesh Releases, Workflow of Doom and Pricing of Doom-i-er-ness

Dancer's Triad with Sunset lighting.

I won't try to make your monitor drip with sarcasm, but you know what the best thing is about building for Second Life?

Having to teach yourself a new workflow to suit Second Life's system. Every. Time.

I can't even recall the hours I've spent figuring out new workflow tricks for different projects. Trying to make things easier, trying to make things faster, trying to make things newer, different, more advanced. Working with a shoddy, buggy, forever-in-beta system while catering to its every whim in terms of what works and what doesn't in terms of sculpts, textures and creating new content.

Sculpties were bad enough, but I think SL Mesh got the new "Hardest Easiest Thing You'll Ever Do In Second Life" award. And when it received that award, the award burst into flames.
Usually things don't work this way. You go from building in Second Life, to actually developing for projects outside of Second Life's workflow, and you freak out because it's too easy! It's too gentle on your sleep-cycle! Where is the laundry list of technical limitations you must follow? You mean I don't have to spend a bazillion hours optimizing something? Why does this work immediately after I import it? Witchcraft! Witchcraft!!

Maybe I'm overreacting. Second Life Mesh was mostly irritating because it really shouldn't be as difficult as it was to create a larger low-poly object with a reasonable prim count; at least, within the perimeters that have been set. Especially when relating it to the perimeters set for regular prims.
Each prim is built up of about 1024 quads, which works up to 2048 polys. I've always said that prims are excruciatingly wasteful, and the transition to Second Life Mesh only hits that home. Uploading a mesh comprised of what is meant to be exported as a sculpt map will drive your Prim Equivalent up so high you'll begin to wonder how Second Life managed to function by itself all this time.

A 2048 poly count is fantastic if you're building a very large, complex or detailed model, such as a furnished house or castle with all the structural fixings. Of course, the point of low-poly modelling is to use the fewest number of polygons possible. It is an art form in and of itself.

 Size and Prim comparison for Egyptian Obelisk.

While modeling my Egyptian Obelisk, I discovered that as long as I have a polygon count below 20 on Low Level of Detail and a polygon count below 10 on the Lowest Level of Detail, I could retain the full model on both the High and Medium Level of Detail settings and still have a very decent Prim Equivalent (1 prim at regular size, and 4 prims at 64 meters, which is the largest you can size a Mesh object).
Of course, this is with an object that would only take up about 100-300 polys. Once you breach the 500 poly mark, things start getting a little bit tougher in terms of balancing the Level of Detail quality and low Prim Equivalent at the size you want to use your object.

  Close-up view of the Dancer's Triad stage and lanterns.

I experienced this problem several times while building my Dancer's Triad, a stage accented with draped cloth, huge 'giants' and several elegant metal lanterns. I wanted to try my hand at making a very large mesh object, with high quality Level of Detail and a reasonable Prim Equivalent. A reasonable Prim Equivalent, I think, would be to use your imagination to split the object into what would be normal prims, and count them. If your mesh object has a higher "prim count" than a prim object made of the same parts/pieces (sculpt or non-sculpt), then it is no longer a reasonable Prim Equivalent.

At almost 20 meters and counting in at an 85 Prim Equivalent, I think I beat my reasonable equivalency by about one or two prims. Lucky me! I'll probably use sculpts for cloth pieces next time, though. Second Life Mesh isn't very kind to organic shapes in the way of good Level of Detail and Prim Equivalent.
The entire mesh model comes out to about 3,500 polys, which includes everything except the lantern bulbs, which I had to sculpt to preserve Level of Detail at far distances.

Another reason for a higher Prim Equivalency would simply be breaking the mesh parts into different pieces and not uploading the entire build as a singular object. As an individual who completely supports build modifications and allowing customers to change and modify my products to suit their individual needs, I try to make my relatively unchangeable mesh builds as modifiable as possible. I want people to be able to break apart the build, use pieces of it, shrink or expand, add or delete.

While with mesh, the more pieces you upload as one object may create a lower Prim Equivalence (depending on how you've broken down your Level of Detail), but you won't be able to modify the pieces. Doing the opposite may create a slightly higher Prim Equivalence, but it's not enough to justify not allowing individuals to modify a build within the means of working with mesh.

Pricing these pieces has also become a bit of a bother, considering the mesh market isn't too strong yet. I decided that I wanted to price about half of what I might get on a 3D content site for the Triad, as it's excruciatingly detailed and includes UV maps, and price the other accessory items at normal, every-day accessory-like prices. These items are one prim, come in multiple colors and don't include UV maps.

Anyway... without further adieu, I give you my three first mesh releases!

Guinea pig mesh project. These will also be available in my shop's Lucky Chair for a little while. They come in 7 different colors (separate, no script). The textures are entirely hand painted.

This was simply a fun day-project. As a copyable object with a maximum Prim Equivalent of 4 (at 64 meters), you can really place these around your sim or plot of land in any size without worry. Includes 7 color options available through a touch-menu script. Script is removable. Nothing less than hand-painted textures and excellent use of Photoshop brushes.

Largest and most complex of all of them. UV Maps are included for optimal modding and customization, and the build itself comes in three sizes: Large, Small and Petite for fairy and petite-sized avatars. The hanging cloth is scripted color-change. 6 colors available, including white for any sort of wedding or anniversary celebration. The Level of Detail is optimized to withhold quality at very large distances, and, of course, the textures are completely hand-painted. 

The Giants and The Stage are also sold separately.

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.