I implemented an algorithm for packing UVs quite a bit tighter than Blender does it. The algorithm is quite simple so it took a lot of optimization to make it fast.
Thanks for creatng this addon ambi, way better than blender own. Are you planning to improve it with new features like overlapping uv packing and ipack that kinda features? Just to know im supporting for a reason.
Works really well. Can I ask how you handle island rotation? The test object I ran through it looks like rotations are locked at 90 degrees, are there any plans to expand it so that users have more control over it? Such as per-island locking the initial rotation so that it doesn’t rotate at all, unlocking rotation completely, and locking to 90º.
Might be worth mentioning but the addon threw a python error when I tried to pack my first test object. I took a wild guess based on the error that it was caused by overlapping vertices which seemed to be correct because running remove doubles on it solved the issue.
The islands are rotated by 90 degrees to maintain texel orientation. 360 degree rotation is not complicated to implement, but it will increase the packing time by quite a bit.
Per island locking should not be hard on the algorithm level, but on the interface level it requires a lot more planning. Maybe use UV pins for that?
Can you send me a .blend on the object that threw the error? I’ll look into it. Something like http://pasteall.org/blend/ should work fine.
@PLyczkowski: The addon should now recognize and pack all of the islands. It will take some additional tests and coding before the next release, but I might upload a beta version if there’s interest for it.
@aMars: There shouldn’t be inner or overlapping islands anymore. The requirement to remove doubles still remains. Unless there’s a clear use-case where double vertices is part of the UV workflow, it’s out of the scope for now.
Thank you ambi! As far as overlapping vertices go I don’t mind the requirement, I only spotted this because I just lazily threw the mesh together. The main reason why I posted it is because the error wasn’t particularly descriptive so from a usability standpoint I wasn’t sure what the problem was and just had to guess. It would have been nice to receive a more specific warning.
I purchased your asset recently and did some practice with it using the Suzanne head. The results were very satisfying! I did not save the project but I do have a render that I painted (see below):
Still, 90 degree rotation and flip seems to be the best alternative when started with Blender pack (CTRL-A, CTRL-P), because it minimizes the bounding box. But, if anyone is interested in trying it out, let me know how you like it.
Awesome addon for game asset production. I also find it very usefull for packing lightmap uvs for ue4. It would be great to have some kind of progess bar if possible.
As you can see in above screenshots it has an issue packing non 1:1 w/h ratio textures. Very often working with 2:1 or 1:2. Here’s a closeup of circles: http://cgstrive.com/SS/2_4212017__general__c0a4.png
Bonus. MultiUV is essential plugin in gamedev. While your script gets along with it fine, it deselects and exits the mode. Might be a good idea to develop and test hand in hand