Monday 26 August 2013

Mesh, Rigging, Standards and Liquid Mesh



I think if you have read my harsh but rather frank review of mesh over the last few years, especially when it comes to rigging it should be obvious that I have been both excited and then rapidly disappointed by what is available, not to mention the almost apathetic situation that comes from Linden Labs over pushing mesh forward.

I have over the last few weeks, been working through some rigging ideas that have been begging for my attention now for ages and as per usual, I have hit the old problems with them leaving me frustrated and rather angry.
The problems centre around one thing.
Standards.

When you design something, you have to work from a bench mark model – a standard.
For example, when you are doing a texture for the SL avatar to use, you have a map to work from, which will put the right pixel in the right place. There is no point in the lips being on the bum is there.
This is a standard bench mark – things no matter what you do, if you follow the rules, will always be the same.
That is a hard fact of design – you need a bench mark standard to work from, otherwise you are shooting blind.

This is where the fundamental problem with rigged mesh comes in.
At its heart, it uses a standard – the so called “Ruth” avatar as its bench mark and assuming everyone used Ruth as their default that is fine.
However when you get the rigged mesh in world, things change.
Attached to the avatar is the appearance system. The so called Deformer system that allow you to quite aggressively change the avatars design.
This is then split in to two areas – Soft and Hard Deformers (I coined those terms myself but they work).
Hard Deformers actually change physical dimensions. For example Height, arm length, leg length etc.
Rigging and hard deformers work fine – adjustments you make to the avatar on the hard deformers are carried through in an almost predictable manner.
Rigging work by taking information from effectively a stick figure internal skeleton. You can make hard adjustments to that skeleton with the hard deformers.

Soft Deformers though are vastly more problematic. These change finer detailing – Breast size, waist size, lips, butt size etc. This is where rigging falls down.
Rigging as I said above, works from a Skeleton, and butt size has nothing to do with the skeleton.
The result of this is butt size breaks the bench mark, and as a result breaks Rigged mesh.

And this has been an ongoing argument and point of discussion for designers in SL since rigged mesh first arrived.
We have been desperate to get a “standard” established where rigged mesh would have a bench mark and this became known as the Deformer project.
The irony is, the Deformer projects birth didn’t actually come out of Linden Labs. It was an independently commissioned by users of SL project with the lead on it being one of Linden Labs ex-team members, Qarl.

The results of this project have been spotty. After doing some inspired work, they got a deformer system actually on the grid and in test phase. There were however errors and unpredictable issues popping up, which honestly should be expected, however independently it seemed Linden Labs had decided to work on their own version, and over a period of a few month, the commissioned project was “shuffled” off, and the Linden Labs model appeared.
This worked as good as more or less, the independent project.
However, that is as far as it went. A beta viewer model that was never released fully as it didn’t work perfectly.

It recently was confirmed by Linden Labs staff that the project was shelved and there was no more resources being put in to it. That could of course change in a matter of minutes with Linden Labs when the wind changes, but as it has been over a year since we last saw any movement on the Deformer project, its fair to assume they are too busy building more pointless addons to the viewer.

Correct me if I am wrong... please. I would love to hear about something that will improve SL.
(okay... I know that materials are coming, but that in itself is a flawed and commercially fraught with danger project that most designers will be very dubious about touching – I will rant away on that when it arrives)

So, the state of play with Rigged mesh.
Firstly, it was released broken and while still partly useable you had to perform backflips to get it to work right making it hard to impossible to work with unless you flood the grid with 10 different versions of each item you make to suit the various body styles, and even then, have to put a notecard in the box explain to users “sorry, but you will have to adjust your shape a little to get this to work right”.
Secondly, both the unofficial, and official projects at the moment seem to have ground to halt, and are in the “no more work being done” tray.
This of course, leave us back at the first point with no hope in sight.

Except, as it appears, there is hope. In fact a quirk of mesh was discovered by some designers that gives near enough 65% deformer action on the avatar and actually is there right now and useable – no new software is needed, or development work for that matter.
The term “Liquid Mesh” has been coined as its name.

This curiosity comes from the fact that Rigging works on using the SL skeleton as its rigging base. As described above, an internal stick figure.
Except, its not the only skeleton hiding in there. There is a secondary “Collision” Skeleton used by the physics engine.
A brief explanation of this. When you walk in to a wall or walk on the floor, there has to be a physics interaction. If there wasn’t you would simply pass straight through it. Although personally I haven’t used it, this is where the internal physics Collision skeleton comes in to it creating a physics representation of the avatar which can then interact with its surroundings. And it has to be a little more advanced than a stick figure for it to work right.

That said, this is no perfect system by a long shot. Breasts don’t work, and items like the head are nothing more than a block, but from what I have seen, for 80% of rigged mesh applications in SL, it will work 80% of the time.
That is far superior to what we have at the moment.
In the examples I have seen, and from tests I have seen performed the elements behave in an almost predictable way – its not a bench mark by a long shot, but its much better than what we have at the moment.

Except... It seems Linden Labs have been pushed on endorsing Liquid Mesh, and in a move that I think surprised most, they have refused to endorse this design technique.
That means that without warning, they could pull the functionality from SL at anytime, and as a result, the item being sold to customers could break without warning, leaving the designer with an absolute mess on their hands.

I have recently been reading up on what many of the mesh gurus in SL have been saying about Liquid Mesh, and why they think its a fantastic idea or in some surprises, a bad idea.
I have to say I am seeing both sides of the argument but what this really boils down to is this.

Linden Labs has to make a decision now over Liquid Mesh.
I am not saying Endorse it, but I am saying, if they know something thats not for public consumption and Liquid Mesh will cause a down the road issue, then pull the functionality for users on Liquid mesh now. Dont procrastinate over it, or be vague, or try to avoid this issue and leave the functionality there – either leave it be, or get rid of it.
There is an old saying. Either you make a decision, or the decision will make you.

Ultimately designers on SL are running a business. If you have a tool, endorsed or not, and it cures multiple operational problems for the designer and the user, then you use it.
If you don’t, your competitors will, and as Linden Labs have now confirmed that they have effectively shelved the Deformer project, then designers will use the only tool in their box to get around the many holes Rigged mesh has in it.
The net result is, the snowball has started rolling already and in six months, designers will flood towards using Liquid Mesh and if the decision isn’t made now, it may be too late to make that decision six months down the line, as the community backlash will be nothing short of epic, and worse, it will probably be the designers, not Linden Labs, who get the blame.

And to throw my hat in to the ring... Will I be doing liquid mesh?
Well, I am still on the fence, and the official line right now is, no.
But I am not stupid, and I will be thoroughly investigating Liquid mesh to see what it can and cant do. I will report back when I have some facts



Thursday 22 August 2013

Sunshine havoc - The Viewer 2 Legacy, Long live Viewer 1?





In the past I have been pretty outspoken about how Linden Labs insane changes to SL are detrimental to how SL itself works. However, like many other users and creators on SL, it all got to a point where trying to talk some sense in to Linden Labs was beyond a joke, and I gave up, settling myself in to just inworld grumbling, however thanks to “Project Sunshine” which has now been rolled out grid wide, I have felt the need to sit down and grumble in public again.

First off, I think I should, from a users perspective actually quantify what project sunshine is.
According to Linden Labs
Project sunshine take the baking process away from the viewer and the user, and does it server side to speed things up, and cut out the “blurry” avatars.

To understand that though, you need to understand what baking is in the first place otherwise for all you know, making cheese toasties are now done server side rather than with the user.

Baking is a process of making a combo pack of the various textures you are wearing, and creating 3 images of it.

So... you have a skin on (3 textures), a shirt (1 texture), Pants (1 texture), alpha masks (upper and lower body – 2 textures), a Tattoo (3 textures).
So... with that you are wearing 10 textures. Each of those textures will need to be downloaded by anyone who sees you in world. Obviously thats a hell of a load to work with.
This is where baking comes in.
When you first wear an item of clothing you will see it appears on your avatar. Roughly 30 seconds later, the avatar goes all blurry and then comes back. The blurry bit is you actually baking.
After a set time, your viewer (as in the one on your computer) takes the 10 textures you have on, and merges them in to three – the Head, Upper Body and Lower body.
It then uploads those textures to the Second Life Servers as a temporary bake files.
Now, when someone sees you in world, they only have to load 3 textures, rather than 10.
I use 10 as an example because its convenient, but its not unheard of for some people have to have 30 or more textures on their AV, so the benefits of baking are very apparent.

Now... where does sunshine come in to this?
Well, the basics of Sunshine are, it takes you out of the equation.
When you wear an item of clothing now, rather than your viewer doing the baking work, a server at Linden Labs bakes the textures and stores them. The result is, things are faster, and less bandwidth and errors will occur. In addition, this is supposed to speed SL up, as there is a database of items that will take various textures, and store their bake permanently so if you and another user have the same outfit on, it wont need to bake – you get the texture.

Sounds great doesn’t it.

However. What really are the benefits of Sunshine?
SL to me has worked perfectly for years – never had issues and even with sunshine, I am still seeing half baked people.
But, what about this faster database of stored bakes?
Yeah... thats just about as dumb as it gets. How many times, realistically, do you see someone wearing exactly the same skin, with exactly the same clothes as you?
Answer is never. There will always be something slightly different about you.
In fact there is only one occasion when this will help.
You can now see noobs faster.

Now, lets cut the crap here. Project Sunshine is a step forward, but is it the brilliant thing its made out to be. I would say not really.

This is sadly typical Linden Labs – big project, big noises, little inworld impact and massive inconvenience to users.

Which does kind of neatly bring me back to the point of this article... why’s Hemi on the soapbox this time?

Well, it all comes back to one of my other major gripes about Linden Labs over the last three years. The next generation viewer – also known as Viewer 2 / 3 what ever it is this week.

I remember the utter disbelief and backlash against Linden Labs when they proudly showed off Viewer 2 to the users.
Basically everyone with a few small exceptions hated it. Passionately.

I remember vividly though the comments posted were not rude, unfounded or harsh. In fact they were very constructive, and tried to help.
Linden Labs after this consultation and testing of the new viewer then said effectively “thank you all for your comments, we don’t care, its going ahead as it is”.
In fact I know of at least 5 personal friends of mine who actually said “If this is the future of SL, then I don’t want anything to do with it..” And shortly after, they left SL.

Sadly Linden Labs didn’t back down on the new viewer format, and it was taken on board by Third Party viewer makes to try desperately to clean up the mess Linden Labs made and produce a viewer that people could use, rather than what LL’s were forcing down their throats.
In fact today, its almost laughable that the current Official LL’s viewer is being beaten in to the floor by TPV projects like Firestorm.

About a year ago, with new features being pushed in to SL, and with the official Viewer 1 from LL’s getting the chop, as well as the sad news that viewers like Phoenix getting axed too I decided as Viewer 3 was now almost useable, to move on to Firestorm.
It was a move that unsettled me as I tried to get my head around some of the serious building usability issues that had been pushed in to Viewer 3 such as the mental methods of skin and clothing construction that increased the production time by three (yeah – I timed this. If you took at day to build something, with Viewer 3, it will take you 3 days).
However, I bit the bullet... and forced myself to get used to Viewer 3, although technically working on clothing and skins, I continued to use Phoenix.
I have to admit by this point I had almost resigned myself to the fact this was SL now but I still had options.

That is, until Sunshine arrived.
As Sunshine changes the way the viewer behaves, unless you are on a Sunshine capable viewer, you cant see SL. Just lots of grey people.
Well... shouldn’t be a problem. Just update Firestorm.

That is kind of where my problem started. I updated Firestorm, and by the end of the day I had to roll back to Version 4.3
The viewer was effectively unusable for me.
So, what was the problem?

First and foremost was the viewer throwing a fit every time it saw an alpha texture. Not the actual rendering of it, but if you cammed on to it.
The viewer would for no reason at all, freeze solid for 10 seconds.
My first reaction was, check my graphics card driver software – I did, updated it.
No fix.
I then went on to the Firestorm Wiki, and spent over an hour running through ever single graphics glitch hotfix I could find... nothing worked.

The only solution I found for the problem was unacceptable. Setting Graphics to Low cured it.
However working on a PC that has been running on Ultra on 4.3, sorry – not putting up with Low.

So in the end, I had no choice but to roll back, and hope that Firestorm would release an update before it got critical.
Well, Sunshine went live on Tuesday, and with no update, I had to put back the glitched release and in fact I found even more issues since the reinstall.

1/ Loss of connectivity – effectively without warning, sim ping times were in to lag out mode, with 1500ms being the average. This was all sims too.
2/ Avatar blinking in and out – the avatar would just disappear for a second without warning.
3/ Freezing on camming around a sim – as the viewer tried to load in the sim, the whole thing would freeze up regardless of first load, or even being at home with everything in cache.
4/ Menu freeze up – open inventory, preferences, etc, and the viewer would freeze up for 10 seconds or more.
5/ Cam to semi transparent object would freeze the viewer up for anything from 10 -20 seconds.

Which I suppose brings me back to Sunshine.
Which is better for your company? A viewer that allows users to actually use Second Life, or improving Second Life’s loading times and making a viewer that is at least for some of the population, unusable.

In a laughable way though I found a solution to the problem though.
I have moved back to Viewer 1.
Over time, while the better known viewers like Phoenix have perished, a small hardcore group have continued to push viewer 1, and I am very thankful that TPV’s like Singularity decided to stick with Viewer 1 and build software that can offer what is for people like me, essentials.

Singularity is fast on my PC – in fact it seems to be running circles around Firestorm in terms of FPS rates. It also is much kinder to my PC – its operational load cost on my CPU and memory is a third of Viewer 3.  Its also stable – everything that should work, works flawlessly.
Its more useable for builders – as it still has the older Edit Appearance system, it means faster production times for clothing and skins compared to viewer 3.
It seems to have all of the “unique” features that viewer 3 has.
The only thing I really still have to test and work on is mesh uploading, however I assume that these issues have been cleaned up since I last used it.


Well. This is awkward as I think its about time I asked a question here.

Way back when Linden Labs unveiled their amazing Viewer 2 we were told by Linden Labs that this new viewer was the way forward and that it was a necessity as the technology Linden Labs was developing for Second Life in the future required this new viewer.

Today in near enough three years on from that. The new technology Linden Labs was developing, is mostly here now and there new viewer has gone through massive development in that time.

But as a user of Second Life, all I can see that has happened is this.
The new viewer is still an overweight, cluttered, messy design with a GUI that has had to be adapted to look like the original viewer in order for it to work right. Its memory and CPU over intensive and has from my point of view, become an untenable and unusable piece of software thats throwing out multiple errors all the time.

The irony of this though, is that viewer 1 base systems like Singularity, based on tried and tested software is faster, more stable, less memory and CPU intensive and gives equal or better FPS rates than the new viewer does.
And here is the serious point. We were told the new Viewer was a requirement due to the new technologies coming. And yet, today, Singularity has effectively integrated ALL of those new technologies in its build and seems to be running circles around the new Viewer.

I don’t really have much more to rant about so I will sign off with this.