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

As a new member of blenderartists I can’t upload files here. Where can I send you the blend file to?

I’m using 2.79.
Can UV packmaster conflict with Texture Atlas addon? I used it first when I tried to pack all UVs without merging my objects. I still have both versions merged and not merged on layers 2 and 3. The UV for the merged model looks perfect, but explodes when exporting, the UV for separate objects packs fine using Atlas add-on, but then gets broken too (for some reason the UVs of the base of the model reset after I stop using the Atlas and revert back to how they were before packing).

Can the issue lie in the fact that I didn’t use “Unwrap” for part of the UVs, but used Project from view? The parts of my model that used project from view seems to be the most broken.

Some users reported issues related to the Texture Atlas add-on in the past, but I am not sure whether it is the root cause. “Project from view” also should not be a problem here.

Send me a file to [email protected]

I sent you the file, thanks for the assistance! Meanwhile I found out that exporting as obj works just fine. Wonder what’s the problem with fbx can be though.
Edit: nope, obj is broken too. The ratio is not 1:1 and the overall position of islands is different from the model I try to export.
Edit 2: I tried the obj export once again and this time the ratio is 1:1, the islands are all in their correct places, just one island is out of bounds for some reason.
Sorry for the spam, I’ll just go with obj for now and will wait to hear from you.

Are you sure that desired UVs are on default UV set?

You’re absolutely right! It was the problem. I feel so stupid, thank you for help!


Texture atlas addon created a new UV set called TextureAtlas and I kept packing my UVs on it while exporting the default UVset where the islands are all over the place.

Hey.

Whenever I try to use UV Packmaster on one of my more complex meshes, uvp.exe crashes. It just happened with the recent V2 demo in Blender 2.8, but it also happens with V1.91.3 in Blender 2.79.

image

Any ideas what this can be?

Hello

Thank you for reporting the issue.

We are currently fixing some occasional packer crashes. They are caused by floating point precision errors. You should expect an update with fixes soon. For now you may try the following workaround:

  • select all UV islands
  • apply some simple transformation to them, for example rotate them by 90 degrees using a common pivot (doesn’t really matter where the pivot is, as such rotation should not have impact on the packing result). If you want to pack with rotations disabled and want to preserve island orientations you may use another transformation, e.g. scaling by the factor 1.01.
  • pack the islands again.

Please, also consider sending us a blend file containing the faulting UV map - we will be able to make sure that our fixes solve the specific issue you are experiencing. You can scale all 3D geometry in the file to a single point if you don’t want to share you work - the UV map is all we need to debug the issue.

2 Likes

Hello.

Cheers for the quick answer. Rotating the UVs by 90 degrees actually worked. I can’t send you the mesh for copyright reasons, but it seems you’re on the right track as the rotation workaround did the trick.

looks amazing !!!

i wish i had some credz to spend on this :confused:

good work though ! congratulations ! :slight_smile:

and happy blending

Thank you. Note that we also provide the standard edition of the add-on for a more affordable price. The standard edition doesn’t have all features of the pro edition, but it still packs UVs super fast (there is no difference in performance between both editions in terms of packing on CPU) :slight_smile:

1 Like

RELEASE 2.0.7

Fix occasional packer crashes. More tweaks of the UV validation feature.

UPDATE NOTES: after update it is required to restart Blender in order to make the add-on work.

4 Likes

How do you like the idea of multi-object packaging?
but how to show the result in this mode? You can make a separate module module for combining and separating several objects.

Note that Blender 2.8 natively supports multi-object editing (including UV editing). UVPackmaster is aware of that and fully supports this mode :slight_smile:

In Blender 2.79 you can use the Multi UV Edit add-on: https://www.youtube.com/watch?v=vxAbh2o4XC0

1 Like

Hmm, so I missed 2.0… is there any discount for pro users of previous version? :slight_smile:

1 Like

in 2.79 it was showing up in the Toolbar - but in 2.8 the toolbar is different and i cant see it.

i just tried to install 2.07 - but theres an error…

@youthatninja Sure, you only have to pay the difference between the UVP2 price and the amount you paid for the first version. Send us an e-mail to [email protected] and we will send you a discount code.

@ollah In Blender 2.8 the interface is located in the ‘N’ panel of the UV editor. If the issue persist make sure you are using the proper add-on variant (zip file with the ‘blend2.8’ suffix), then remove the add-on, install it again and restart Blender. Also make sure you are using the add-on with the latest build of Blender 2.8.

Let me know whether it solves your issue.

Hi @glukoz , first fo all - great addon!

I’d like to ask - there are options to Group by material or similar shape.
Are there also option for grouping (or packing) together by mesh object please?

Sorry if I didn’t found this option. But if it’s not here, it would be nice to have this possibility, so the meshes will share area close together and can be better selected in later texturing workflow.

1 Like

@Vojtisek I liked your idea, so I decided to incorporate it into next release (and not only that) :slight_smile: Here we go:

RELEASE 2.1.0

We are glad to announce that the first bigger update of UVPackmaster 2 is ready! :slight_smile:

What if I tell you that the next release can be 2 times faster under certain conditions? What if I tell you that it can be even 3-4 times faster for some users? Would you believe? :wink: Let me explain: as you probably know UVPackmaster 2 supports different packing devices, not only CPU, but also Cuda enabled GPUs. Now the idea behind new functionality is simple: when you begin a heuristic search, packer starts iterating and is looking for the best packing of your UV map. But why should we limit ourselves to iterating on a single device only? Let’s use all of them simultaneously! No matter if you have one GPU in your system or four: UVPackmaster will use all packing devices available. In parallel to GPU packing it will be using all CPU cores it will find in your system as well. Using this technique the algorithm may perform hundreds of heuristic iterations per second. This is what the new ‘Search On All Devices’ option does. You will find it in the Heuristic tab of the add-on interface. We highly recommend keeping it enabled :slight_smile: Note that this option is only available in the pro edition of the add-on as only this edition supports Cuda packing.

Let’s say that after packing you would like the UV islands to have a specific margin expressed in pixels of the active texture. Such requirement is difficult to achieve if using the most straightforward approach to margin calculation (which is actually used by most UV packing algorithms). Why? The point is that most UV packers apply margin to the islands before packing. After packing is done the islands are packed tightly so they can be scaled up to fit the unit UV square and cover more area (it is the main point behind UV packing, isn’t it? :wink: ). The problem is that during such operation the original margin you specified is scaled as well. In result the final margin changes and it is difficult to predict what value it will have at the end of packing. In order to mitigate this issue the new version of UVPackmaster provides a more sophisticated approach to margin calculation: so-called pixel margin. If you set the ‘Pixel Margin’ option to a value greater than 0 then packer will ignore the original ‘Margin’ parameter and make sure that the resulting UV islands (after scaling) will have the correct margin expressed in pixels. To learn more about pixel margin setting click the appropriate button in the Help tab of the add-on interface. Note that this option is available in both editions: standard and professional.

New island grouping methods have been added:

  • Mesh Parts: islands belonging to the same linked part of the 3D geometry will be packed together.
  • Object: islands belonging to the same object will be packed together. Note: the Object grouping method is only available in the Blender 2.8 variant of the add-on as Blender 2.79 doesn’t support multi object editing.

Beyond that the new release provides bug fixes including an important fix for a bug preventing packing on different GPUs than the first one in the device list.

UPDATING NOTES:

If you are updating from an older version of UVPackmaster 2 it is recommended that you uninstall the old version of the add-on first and after that you install the new version. If you see any error when enabling the new version, then restarting Blender once should fix it.

13 Likes

Thank you @glukoz! Awesome update news :).

The mesh group packing will be in next version, If I understand correct, right? Downloaded actual from Gumroad and this option is not presented here.

Yes, thankyou. :slight_smile: