I was wondering are there any standalone programs that can calculate how efficient a texture or uv sheet is in terms of pixel space?.
So for example you could make your uv sheet and click a button and it could tell you how much pixel space you are wasting or something.
It would be pretty cool if there was one as that way it would be alot easier and quicker to make a very efficient texture map. I know alot of people can easily do it without one but I think it could be a handy feature.
What does everyone else think about the concept?
Replies
Once you start getting down into saving an extra 1% of space then you're hitting diminishing returns and would be better off spending your time making the texture look better than trying to pack stuff as super-tight as possible.
Also, Max (I'm sure all the other software packages do too, but I'm talking from experience) does a great job at packing UV's itself. I think I have only changed my UV's, after letting Max do the work, 2 or 3 times...
UV-packer from the flatiron people does a very impressive job and automatically compressing and placing your UV shells in a very compact way, though I believe manually packing stuff is still key to a controlled result (i.e non rotated clusters when you need them like that).
I actually used to think the same as you, in fact I used to check it out by looking at the Histogram in Photoshop after exporting a UV layout where the UVs are filled in white and the background is black - the Histogram could show you a ratio of white to black.
But it actually ended up just wasting time doing all this stuff, it doesn't really tell you anything you didn't already know. Really if you just learn to tell a good UV layout at a glance this will be way more useful in the long term
Specifically, run the blur->average filter and then eyedropper it and check the V amount.
I used to do this when I was first starting out professionally but I've long since realized that being slightly less space-efficient but making a readable, usable unwrap is much more beneficial. It's easier to texture when I keep different elements near each other and maintain certain spacial relationships.
Yeah, but Maya's one sucks, and leaves loads of wasted space. UVLayout does actually give you a percentage, and has some nice features like keeping certain UV shells together/near each other so you don't end up with teeth/rivets/greebles scattered all over the map.
Because I usually don't bother with stacking before I have all shells unfolded first. But I hate when you've stacked them neatly just to discover that your shells are slightly too big or too small, and you'll have to rescale and do it again.... It would give a nice starting point, just scaling them down a notch and start stacking
Or maybe it's just my workflow that's retarded....
- Then I run MoP's normalize script which makes sure the scale between the pieces is consistent, it was included in Renderhjs's TexTools too.
- Then I relax, stitch and pack it into a square shape not carring if it hangs over or outside the space and then just scale it to fit. If I see early on that everything is not really going to fit then I scale it all together so it maintains a consistent pixel density.
- To check for wasted space I do what others have suggested and just take a look at the layout. I'll normally go into face mode and select all which gives me a good idea, or I'll catch wide open areas when I render out the high contrast template that I normally save out for a wire overlay in photoshop.
It also makes sense to have the background be a common color and to pack together things of similar edge color in case they bleed. No need for padding if the area it's going to bleed on, is the same color. This doesn't mean you can pack it all together tightly but grouping becomes a little more important.
It can also help to snap your UV's to a pixel grid that way they don't start off straddling the fence. Of course that becomes a bit problematic with organic shapes and diagonals but there are always exceptions to every rule.
One of the best things about it is it lets you pack your shells in groups, which is really handy for hands with detached fingers and so on.
chronic: Uvlayout gives you a percentage of covered space. its under pack->show tile coverage