[UV Packmaster] Efficient UV packing solution for Blender (C++ based, multithreaded)

hi, thanks for osx version, works on 10.10 too (in docs you stated 10.11). i took a risk, purchased pro version and it works just fine :slight_smile:

mac7ua, I think it can be done in the next release.

carbon2, it’s great to hear that add-on works on older systems as well :slight_smile:

We’ve prepared a picture showing the differences between versions in graphical form:

That’s just smoking!
But what about material grouping? Is it finished, or still in WIP phase?

Don’t worry, material grouping improvements are planned in the next release :slight_smile:


great news this is by far the best packer for blender based on speed and features. I hope you keep developing it, since this is for me starting to replace my previous abandonware IpackThat.

Thank you for the kind words - such posts give us a lot of motivation :slight_smile:

Just tried it on a complex model I did last year with 3ds Max. Many curved shapes, many tiny islands. Back then UV packing was done with PolyUnwrap and lots of manual improvements. I don’t know any more how much time I spent on it but it must have been one or two hours at least.

According to UVPackmaster I achieved 65% coverage. 2 minutes of recalculation later: 73%. This is awesome.

Thank you for the positive comment :slight_smile: I am currently gathering opinions on UVPackmaster in order to cite them on the add-on product page - could I include your opinion?

Hi, just bought it. Will you please support multiple objects packing? I think it’s te most missing feature by now.l…

Sure! :slight_smile:

@pildanovak packing multiple objects seems to be working just fine when using the Texture Atlas function. Here’s my mesh from yesterday’s experiment that consists of 60 objects.
This time I got 82% in even shorter calculation time, increasing Iterations seems to be much more crucial in this case than Heuristic Search Time.

I too got this Invalid topology error a few times with some other meshes. It seems not unly to occur with actual invalid geometry or loose vertices but once islands are too close together. It can actually be reproduced: create a cube and unwrap it with Smart UV project — Island Margin set to 0.0 — when trying to pack it it will give you the Invalid topology error. You can avoid it by setting a margin or by packing it with Blender’s built-in tool first.

Plain cubes seem to be a weak spot btw., I can’t seem to get more than 37% coverage when trying to pack those 6 squares. :stuck_out_tongue:

you can also use Multi-Object-UV-Editing addon

standard_owl, that’s excepted: if you have a lot of tiny islands in your UV map then the heuristic search option is not much helpful. Think about it this way: in such case the dense packing of bigger islands is not so importat because the big quantity of small islands will fill the gaps between bigger islands either way. In such situation it is more imporant to minimize the margins between islands - a lot of islands means a lot of area taken by margins, so the smaller the margin the much more UV area used.

The situation is different when a UV map doesn’t contain a lot of small islands. In such situation it is essential to pack bigger islands in dense manner, and this is what the heuristic search allows you to achieve.

Regarding an issue with the cube packing: I cannot reproduce it. I created a cube, UV unwrapped it using smart UV project with islands margin set to 0. I could pack islands, no invalid retopology error was reported (I didn’t even have to enable the ‘Extended Analysis’ option). I achieved above 60% of coverage. Could you send me a blend containing the cube together with the UV map you have issues with?

Thanks for the explanation. That helps to understand which setting to increase for getting better results for a certain mesh.

As for the .blend file, these are the settings I used when unwrapping:
Angle Limit: 66
Island Margin + Area Weight: 0.0
Correct Aspect and Strech to UV bounds enabled.

invalidCube.blend (644.9 KB)

However the reason for the invalid topology error seems to be entirely Blender’s fault as it merges two islands together on one corner. Which doesn’t happen if you set a margin greater than 0.

When packing the islands, the Addon produces a checker pattern (left) while Blender’s packer arranges them as I would expect it (right).

I packed the map from your file and got decent result: above 60% coverage:


Are you sure you have island rotation option enabled? Set it to 90.

Yes, I tried the default settings and again with more iterations. I keep getting the checker pattern though.
But hey, as long as it works like a charm on actual complex meshes that’s totally fine with me. :slight_smile:

I can confirm that with normal cube all edges marked as seam and packet with packmaster I get this checker pattern as well. https://i.imgur.com/EKgEZbl.gifv

1 Like

Do you think we can get a “Pack to new UV layer” checkbox Glukoz? :slight_smile:

I mean, it can be done manually of course, but it’d be neat anyway.

After some debug: simple cube packing seems to be a corner case for our algorithm, fortunately easy to solve. We will fix it the next release. Fortunately such straightforward cases are not problematic as they can be easily packed by standard Blender packer.


first of all we changed a conception of free version of our add-on: the basic version is no longer supported, we introduced the demo version instead. Demo version has all capabilities of the pro version, but pack result is rendered in a separate window - it cannot be applied to the UV map. Note that the demo version still supports ‘Overlap Check’ and ‘Measure Area’ functionalities so it still has a practical use, not only demonstrative.

We introduced improvements to grouped pack algorithm - now the areas of particular materials should be more convex, like in the picture below:

Yes, you guessed it - it is an example of a render from the demo version :wink: Note the grouped pack feature is still marked as experimental - it means you can except further improvements in this area :slight_smile:

Apart from that following options have been added:

Post-Scaling Disable: do not scale islands after packing in order to fit them into unit UV square. Enabling this option is not recommended in most cases.

Automatic Area Measurement: automatically measure islands area after packing is done.