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


(fiendish55) #162

one way might be possible to do this might be letting a script calculate vertex count and bounding box of the islands and if both match it would rotate and stack them top of each other and run “remove doubles” funtion in uv editor with selected activated.

or second idea that is already proven consept but abandoned and too hard for casual blender user to install.

(cgstrive) #163

Quickly tested Demo on production models, holds up really well, will purchase promptly.

Suggested improvements:

  • Would be nice if Pack to others + Use Texture ratio options would be supported.
  • Houdini also has option to OVERLAY similar UVs. For example if my asset composes of 20 wood/metal beams, i’d like to have some (but not all) reuse same UV space BUT be shifted out of 0-1 area not to cause baking issues.

(Rômulo Ferreira) #164

This is exactly what I was talking about, I just found a new build for blender that solves my problem with array and mirror modifier, now you can offset their clone uvs. You can find this here: https://builder.blender.org/download

(cgstrive) #165

Demo worked on given scene, bought PRO and result right here:


(kabu) #166

When I try to do pack I receive an error:

“Error: Install OpenMP library and restart Blender”

OsX 10.13.6, Blender 2.79b

(glukoz) #167

@cgstrive Version 1.7 doesn’t report an error, right? Anyway, please send me a blend file containg the faulting UV map. You can scale your 3D geometry to a single point if you don’t want to share it.

IMPORTANT INFO FOR EVERYONE: please always send blend files when reporting such errors. Without a blend file such issues are practically impossible to reproduce!

@kabu Have you followed Mac-specific installation instructions provided in the product page?

(kabu) #168

Sorry, I missed that. Now is ok.

(cgstrive) #169

Ver 1.7 does not report error. DEMO showed everything correctly in floating UI. If i’d have to take a swipe at it, might be part where you transfer UVs from your app to Blender. Might be worth considering that there are a lot of instanced geometry as is often the case with production. note: I only choose 1 of each instance.

Another error. This time minimal settings, completely distort the UV. Something is not adding up:

(glukoz) #170

I don’t quite understand: was your original issue solved by version 1.7? If not send me a blend file. We won’t be able to debug this issue without your UV map.

Regarding the second issue with ‘Tex Ratio’ option: this is already known to us, it might only happen if you have an island which is very long comparing to other islands. We are working on a fix. Note that even with a fix your UV map still would be far from being optimal after packing: it is simply impossible to pack such long islands optimally.

[EDIT]: please also note that the issue with the ‘Tex Ratio’ option can be also solved by enabling ‘Advanced Heuristic’ for a few seconds :slight_smile:

(cgstrive) #171

No, it was not solved. It does not work in either 1.7 nor 1.6, just 1.6 gives error message. It only works in DEMO in external window. As such i assume there is issue transferring that data back to Blender. It probably has to do with multiple data-linked objects that are in the scene. I cannot send you the production file, I would have to recreate scenario and beta test. Currently no time at all. However situations I have tried in are standard gamedev and as such there should be no issues. Blender default nor UVPacker, nor Houdini have problems with it. Currently it has only worked in 1/3 production scenes.

It’s good to know about Tex Ratio, that’s very helpful. Tool is awesome in every way and I hope issues get resolved sooner or later. Sorry for failing to be of more help.

(glukoz) #172

That is very strange, we have never experienced such issues despite testing the add-on in many configurations (including multiple data-linked objects). It’s really a pity you cannot send a file.

Has anybody experienced similar issues and could send us a blend file with reproduction? I would be really grateful.

@cgstrive Are you using Texture Atlas add-on maybe? Some users were reporting issues when using UVPackmaster together with Texture Atlas add-on, unfortunately we couldn’t reproduce them.

Another question: how many instanced objects are you working with?

(cgstrive) #173

Aha, I am using MultiUV addon. Need to always pack multiple objects to same UV, i apologize for having overlooked that aspect. It has become second nature.

I try will submit blend possibly at weekend.

(glukoz) #174

I have tried to reproduce your issue using the Multi Object UV Editing add-on but with no success - packing works properly also in such configuration. I am eager to look at a file with reproduction from you.

(glukoz) #175

And what about the file? We are going to release a new update soon, it would be great if we could incorporate a fix for your issue.

(cgstrive) #176

In a typical production scenario there will be many instances rotated and positioned in unique ways to get away with least UV wastage.

Shared is a simple scene where goal would be to have the widest box tile as it is and all others pack around it (something plugin advertises).

Blender file: http://cgstrive.com/blend/uv_debug.blend

Issue #1:

Issue #2:

Please note that I have wrongly selected multiple instances to be treated as unique. Ignore this aspect, it’s all the same.

That’s it from me, sry. Very busy. Hope this helps in resolving the problems.

Edit: removed issue #3

(glukoz) #177

Just looked at your file.

The first issue is not really an issue: the packer simply stops its job in the middle because there is no available space in the unit UV square for all islands (it is because you have ‘Pack To Others’ option enabled). You should see the message ‘No enough space to pack all islands’ at the top bar of Blender interface.

Regarding the second issue: you should not run ‘Pack’ operator multiple times when packing for non-square texture. It is because packing to non-square texture distorts UV island scale - it is not uniform anymore. Thanks to such distortion islands look ‘normal’ when viewed with such texture. By running ‘Pack’ multiple times you are increasing the distortion.

As I already said in order to pack this UV map optimally you should use ‘Advanced Heuristic’ option and let the add-on look for the solution for a few seconds. You will get a result like this:

(cgstrive) #178

Please consider that a client bought your software that he cannot use and spent several hours doing free betatesting, reporting these issues. It leaves a bit of a bad taste if it’s a standard reply that user is an idiot and my software is perfect. I would instead seek ways to improve and avoid these issues.

Regarding issue #1. This is how nicely Houdini deals with it and I only had to change 2 parameters to achieve that:

Regarding issue #2. Repacking(with different seed) is most common operation you’d expect from UV packing app. Scaling with distortions after repacking is an error, if even for reason I accidentally pressed it. Nearly always in production artist must adjust, change UV after. Only for lightmaps or mask (UV2) you’d expect 1 click solution.
For example in this case I might be interested in orienting Planks the same way for Wood texture to flow correctly. In Blender i always press CTRL+P(repack) for about 10 times for different packing, until it’s least work for me to move and rotate a few bits. Similarly with IpackThat you can stop at any time you see ideal solution on screen. Houdini example is above.

I hope this helps improve this already superb software. Would be great to use it and not have to export.

Thank you

(glukoz) #179

Off-course I am aware that our software is not perfect and I have never stated that it is. The only thing I wanted to do is to explain how to deal with its current drawbacks.

We are keeping in mind all such reports - for sure they will help us address such issues in the future releases and make this software better. Thank you for your help!

(cgstrive) #180

Wanted to thank you guys as your plugin has saved me half a day of work in a week, talk about a good investment!

A small feature request also. When doing Unwrap Conformal (even box and smart), UV shells are rotated in random direction. As you can see it’s not always desired resulting in nonsense like this:

So a nice feature for the packer to have would be respecting the rotation of mesh so it would be a lot easier to work with wood, brick and other directional materials/textures.


(cgstrive) #181

There are circumstances where UV must overlap. Currently the packer fails regardless of options I have enabled/disabled (maybe overlooking something):

PS. Screenshot Blender>Max.