Saturday, 14 September 2013

Postage stamps, double decker buses, and SL Avatar texturing (vString)



As you will have seen this week through the vString updates, I have... grudgingly, folded to the requests coming in from customers and finally release the project that actually led to the X_X Evos.

Namely, the XL and XXL Evo 3.5 update.

The history of this goes back over a year back to the initial first looks at what eventually became the more natural sized Evo models when I was toying with the ideas behind doing a rigged mesh XL breast that could work using the SL avatar upper body texture – a project which has previously been documented as a failure and with good reason.

Firstly the Rigging was a mess due to things I have previously talked about such as the pancake and elevator door syndromes when it came to shape files.. think about it and you will understand what I am talking about, and it was also the major reason I moved away from rigging them.
The secondary issue which was less well documented though was relating to how the SL upper body and texturing works that caused me to grumble quite a bit.

When it came time to release the Evo models, I had made a significant decision based on observations in world – only the X_X was, quality wise at least, capable of handling the extreme “torsions” being put on the textures as technically in sheer surface area, they were small and could cope with it. By that very same virtue, this should also preclude doing the XL or XXL.

However, what many people don’t realise, is just how little texture space we are talking about, and a worse secondary factor that the SL body texture on the breasts is asymmetric.
How little are we talking about here?

A Standard SL upper body texture is 1024 or 512.
Using a 1024 high def texture that verotic uses...

Firstly, we need to 1/4 the texture = 512x512.
Not very large
However... sorry, but that not the end of it. The area which is actually used is way smaller.
In fact, the total size of that area is only 440x 295.
And that covers the upper chest, collar, both breasts and the inner, outer & lower side chest areas.

Its fair to say though that this, still isn’t the end of it as you need to look at relative surface area on the meshes compared to their pixel maps.
At that size, the upper chest, and inner, outer & lower chest sides are pretty much in proportion to the SL body, therefore they are as accurate as you can be with them.
Where the real major area of texturing is though is the actual breasts themselves.

Stripping this back and cutting back to 1 single breast by area, what you find is a scary fact.
Its 185x185 pixels. Texture wise, this is a postage stamp really
And please, remember. I started with a high definition texture. The vast majority of SL skins even today, are just 512x512.
Yeah. That means the actual texture area for the breast on a regular resolution skin, is 92x92 pixels.
Realistically, thats about the same size as a thumbnail in your photo album.

Now perhaps you see why I was very hesitant about looking at the XL model for Evos.
On the X_X, stretching the postage stamp over the breasts surface are was pushing things and you can see the result of that in the surface texturing.
So to pull it off on the XL, let alone the XXL was going to be a nightmare.

Oh.. Did I mention this texturing gets worse?
Well, to the untrained eye, the SL upper body texture looks like any boob. However a much closer look reveals a oddity. The breasts are actually not centred. They are Asymmetric.
By this, what I mean is, looking at the right breast, the nipple is not placed in the middle. Its placed to almost a 1/8 the way to the right, squishing the right outside edge of the breast up. So in the inside has more texture space than the outside does.
Ironically when you are looking at large, heavy cleavage style breasts, you want more on the outside and on the inside cleavage its actually hidden.

So, not only are we dealing with a postage stamp, but actually lopsided postage stamp that we are struggling the wrap around what is a double decker bus in surface area.

In fact its fair to say, the XXL Evo are included as a bonus feature to be used at the users discretion, not as a selling point. They can look very good but they arnt perfect.

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.



Monday, 29 July 2013

Mesh, Windlight and Standing upside down



Back in 2009, I was sitting on a pose stand in SL, manually trying to tint some breasts so they worked right and matched in to my avatar.
This, it has to be said was a life lesson for me in that Second Life tends to make little sense but in the end, I learnt a lot about tinting and how things around the avatar tend to screw up the way things match.

The first and most simple realisation was an environmental concern.
Time of day on SL.
If its night time, the implants behave differently to when they are on midday – the tinting and matching is thrown off terribly. So first I had to make a standard to ensure that what I was seeing was what customers were seeing.

Rule 1 – Always set your default time to midday and have NO artificial lighting to corrupt the results.

Well, I thought I was smart when I did that and sat my butt down on a pose stand, and tinted the breasts to perfection. They were absolutely fantastic – 99.9% match. I remember being smug with Akemi about it.
Then I got off the pose stand and all hell broke loose...

Standing in one direction they would be spot on... turn to left or right and they went to hell – the tinting simply messed up.
After checking all the variable, it turned out Windlight doesn’t only operate in the up and down position – it operates North, South, East and West too. In fact, even on midday, the setting were showing that the differential was between East to West. I was standing West when I tinted the breasts. And turning East, they went massively out of tint.

Rule 2 – Always put your pose stand North when you are tinting – its half way between west and east, and give you the half way house needed to get a good match.

Well, its not a spot on match, which is why implants will never be 100% accurate – in fact they will only be 95% at best but it depends which way you are standing, and what time of day it is.

Those two simple rules have been the mainstay of Violet Studios Implant work over the years and it hasn’t changed.


Fast forward to 2012 – the new generation of implants using Chest piece design based on the SL upper body texture.

As usual, doing implants is a matter of following the rules. Wear the breasts, get on a pose stand facing north, set the time to midday, and off you go.

First thing I noticed was, even though it had been claimed that they used a standard SL upper body, it wasn’t matching right. In fact, out of the box, there was a very light area over the collar bone, and a dark area between the breasts where it joined the avatars lower chest.

I wasn’t 100% sure why this was happening, however after much deliberation I decided to effectively start from scratch – build a new generation of textures which would compensate for that differential and two weeks later, I threw out the first generation of appliers.
From my perspective, they looked spot on – everything was how it should be. I had used a tried and tested methology to get the results I expected.

However, a few months later, a slow, but steady stream of customers started sending me messages saying “this doesn’t match”.
At first, I thought people were not doing it right. But slowly I realised something was wrong.

To that end, I decided to do some experimentation.
The problem was simple really. If these implants were based on the SL upper body, and they were mapped correctly, then where were the differences coming from visually – the differences that I had compensated for.

The first job was to look at what was going on.
Fairly basic theory work really. Follow the basic rules, and get an SL upper body unaltered on to the implants tinted to pure white (no colour differential causing different results).
And as per the original test, the differences popped back up. Lighter at the collar, darker between the breasts.


(Picture above - Note the collar is extremely light, and the area between the breasts is darker than the skin)

From there, I did some reworking – I started to add in darkened and lightened areas in to compensate, however something struck me while doing this.
It was not behaving logically – I was making the collar darker and darker – so dark in fact it was unnatural. And yet on the avatar, the results were not as pronounced as they should have been.
No. Something was definitely amiss.

I jumped off the pose stand, to scratch my head and left Hemi just hanging there with her default AO running and one animation, she bent down and leaned over and suddenly the collar area out of the corner of my eye got a whole lot darker for the briefest of moments.

This was kind of the Eureka moment when I realised my theories over windlight were right, and still I had missed something.

I jumped back on the pose stand and swapped the texture back to the stock texture, Lighter on the collar, darker on the lower breast seam.
And... then I took the pose stand, and flipped it upside down with me on it.


(Note - The collar is now darker than it was, and the area between the breasts is now over light compared to the avatar)

The result was at best worrying, but at the same time, good that I had figured out what was going on.
Looking at myself upside down, The collar was now darker than the neck, and the lower chest was visibly lighter than the stomach seam. It had swapped over.

What was causing this difference?
Well, I could go in to how windlight behaves around prims, Mesh and the Avatar, but its long and boring.
The primary reason was an error in Rule 1. Set sim time to midday.
With the release of Viewer 2 and 3, SL has been opened up to a massive array of different sim configurations and those configurations can majorly distort what you seen on the avatar.
This is where the first part of the customers problems were coming in.
Secondly, there are also new features like Shadows causing problems. These visual aids were distorting further what the implant itself was trying to achieve.
The result was an utter mess. Treating “Chest Plate” implants like regular implants was a bad idea as due to the fact they are mesh which behaves differently, and the fact SL has evolved since I put those rules in places for matching, my usual methodologies have really failed to an extent.

So what’s the solution.
Okay... this is where this story goes vastly wrong. There isn’t a solution per say.

Using my original production methodology means I need to tint the way I originally did it. But as I have found out, that method means there is always going to be a difference depending on time of day, windlight conditions, local lighting etc. Unless people use what I created these for, then the idea is borked.
If I use an Original texture from my skins, then there is going to be this harsh difference that is caused by the luminosity of where the SL sun is coming from. At midday, this will throw off the textures and even on other times of the day it will make a mess.

So... I cant use my original method, and using the original skin unaltered isn’t going to work either.
Simply put, I cant produce a fool proof method that would do both and keep all customers happy.
To get this fully right, I would need to make hard adjustments to the way the breast work physically in the design work. And sadly I can only do that vStrings.

Stuck in catch 22 here....
So if you cant do both, then you do both separately.

All of Violet Studios Skins will shortly be getting an update – this update will specifically be a “Standard” applier just for Tangos and vString Evos. It is designed so that customers can pick themselves which version they want to use – there my adapted version with the lightening and darkening zones, or they can pick the raw, unedited standard textures.

I cant repair the problem, but I can give customers the choice.