UVPackmaster 2

An efficient and fully-featured UV packing engine

3ds Max Plugin

UVPackmaster 2 is an efficient and fully-featured UV packing engine available also as a plugin for 3ds Max. Its robustness comes not only from the fact that it was written in C++ and runs as a multi-threaded application - it also provides a packing algorithm for Cuda-enabled GPUs (what gives a significant boost). In fact, it can perform some packing operations on all devices simultaneously: CPU and all GPUs in the system.

You can purchase the plugin at gumroad: UVPACKMASTER 2 FOR 3DS MAX

Watch a video showing plugin capabilities

Why is UVPackmaster worth buying?

UVPackmaster is probably the most efficient UV packer out there: it can pack a UV map consisting of 1000 islands in less than a second on 2-core i5 CPU. When the number of cores in your CPU grows, the packer is getting even faster, thanks to our sophisticated algorithm which always make use of all cores, no matter what the packing parameters are. And it was about packing on CPU only - note that with UVPackmaster you can also pack UVs on Cuda-enabled GPUs - then it totally outperforms all other packing solutions available.

Why is packing speed so important? Does it really matter whether a UV map is packed in 1 second or in 4 seconds? 4 seconds is not a long time to wait at all… The point is that in case of many UV maps a single packing run will give you a good result (with decent coverage), but it won’t be the most optimal one. In order to pack a UV map really densely, one needs to iterate the packing algorithm and look for the best result (so called heuristic search). This is the case when the time needed to perform a single packing iteration becomes crucial - the shorter the time of a single iteration, the faster the optimal solution is found.

This the main advantage UVPackmaster has over other packing solutions: other UV packers give you some result, but very often it is far from being optimal so manual improvements are still required. UVPackmaster, thanks to its robust heuristic algorithm, almost always gives you a result which doesn’t require any further tweaks. And it usually needs only a few seconds of iterating in order to produce it.

Take the UV map below as an example. It intentionally doesn’t contain many islands because such maps are usually more difficult to pack densely. The map was packed using UVPackmaster with a reasonable margin between islands:

It is evident that the result doesn’t require any further adjustments. Maybe you could get a slightly better outcome by packing the map manually but think about how much time it would take. The result above was produced by UVPackmaster in a few seconds using the heuristic algorithm.

UVPackmaster, thanks to its efficiency, is able to perform a heuristic search really fast, even when packing on CPU only. But keep in mind that the plugin supports different packing devices. Not only CPU, but also Cuda-enabled GPUs. It can perform a heuristic search on all available packing devices simultaneously. If you have a GPU in your system the plugin will use it together with your CPU, so it will iterate much faster. If you have more GPUs, it will be even faster being able to perform thousands of iterations every second.

Keep in mind that efficiency is not the only advantage of UVPackmaster. Our fully-featured plugin also supports: locking overlapping islands, adding new islands to existing packing, island grouping, UDIM packing, packing for a texture of any ratio, packing with exact pixel margin and many other!

Free updates

By purchasing the UVPackmaster plugin for 3ds Max you get a lifetime license to use it. You also get access to all future updates of the plugin for free. We continuously work to improve the plugin and you can expect a lot of great updates in the future.


UVPackmaster in 3ds Max is implemented as modifier - in order to pack a UV map the user needs to add the UVP modifier to the object modifier stack, select appropriate packing options (or load the options from a preset file) and press the Pack button. The UVP engine will pack the UV map and render the result to the user in a separate window. After the user closes the window, the modifier will remember the packing result in its own structure and it will apply it the original UV map every time it is instructed by 3ds Max to modify the object. The user can press the Pack button multiple times, changing the options according to their needs. Every time the button is pressed, the previous packing result is discarded and the original UV map is packed once again using a new set of the packing parameters. In order to apply the packed UV map to the object permanently, the user simply needs to collapse the UVP modifier.

The plugin for 3ds Max provides all core features of UVPackmaster engine PRO edition:

  • efficient UV packing algorithm
  • UV islands area measurement
  • overlapping UV islands detection
  • heuristic search algorithm
  • packing for a non-square texture
  • add new UV islands into an existing packing
  • accurate pixel margin calculation
  • overlapping UV islands lock
  • grouping UV islands
  • UDIM support
  • advanced heuristic algorithm
  • packing on GPU
  • heuristic search on all devices simultaneously (CPU and all GPUs)

You can test all these features for free using the demo version of the 3ds Max Plugin, available at the Downloads page. Keep in mind that the demo version doesn’t apply the packing result to the object - only renders the result in a separate window.

Supported 3ds Max versions

The UVPackmaster plugin is supported on all 3ds Max versions from 2018 to 2021.

Plugin options

Main rollup

Main rollup

Option Description
Multi Object Mode Determines the modifier behavior when it is applied to many objects at the same time:
  • Process Together - UV maps of all objects will be packed together in a single packing run to the same UV space
  • Process Separately - UV map of every object will be packed to its own space, in a separate packing run. In this mode the plugin will perform as many packing runs as the number of selected objects.
Display Orig. UVs Show a window with a render of the original UVs.
Display Packed UVs Show a window with a render of the packed UVs, if available.
Pack UVs Run a packing operation.
Render Result Show a window with a render of the resulting UV map after every packing run. The plugin operation is suspended as long as the window is opened - the user must close the window in order to continue.
Save Preset Save all packer options to a file.
Open Preset Load all packer options from a file.
Reset To Defaults Reset all packer options to default settings.
Packing Devices rollup

Packing Devices rollup

Option Description
Use All Devices If this option is enabled, the add-on will use all packing devices simultaneously whenever possible.
Basic Options rollup

Basic Options rollup

Option Description
Map Channel Choose the UV channel which will be processed by the plugin.
Thread Count Choose the maximal number of CPU cores which will be used by the plugin. By default this parameter is set to the number of cores in the system.
Margin Margin to apply during packing.
Precision Number describing how exact the algorithm will be when searching for island placement. Too low value may cause islands to overlap.
Rotation Enable Allow the packer to rotate islands in order to achieve better result.
Pre-Rotation Disable Disable the initial rotation of islands before generating other orientations. The pre-rotation operation usually optimizes packing, use this option only if you have a good reason.
Rotation Step Rotation step (in degrees) to use when generating island orientations which will be considered during packing.
Advanced Options rollup

Advanced Options rollup

Option Description
Selection Mode Determines how the plugin processes UV selection:
  • All UVs - the plugin always packs all UVs (UV selection is ignored)
  • Selected UVs - only the selected UVs are processed by the packer, non-selected UVs are ignored
  • Pack To Others - selected UVs are packed so they do not overlap with non-selected UVs. Using this mode the user can add new islands to existing packing.
Packing Mode Select how the packer should process the UV map:
  • Single Tile - standard packing to a single tile
  • Tiles - pack islands to tiles
  • Groups Together (Experimental) - group islands using the Grouping Method parameter. Pack all groups into a single tile, islands belonging to the same group will be neighbors after packing. For some UV layouts it is required to use the Heuristic Search option in order to obtain a decent result in this mode
  • Groups To Tiles - group islands using the Grouping Method parameter. Pack every group into a separate tile.
Tile Count Specify the number of tiles which will be used during packing. If set to 0, then the number of tiles is unlimited.
Tiles In Row When packing to tiles, this parameter determines the number of UDIM tiles in a single tile row.
Grouping Method Grouping method to use:
  • Material
  • Object
  • Mesh Part
  • Similarity
Fixed Scale Do not scale islands during packing. Packer will return an error if UV islands can’t fit into the packing box.
Lock Overlapping Treat overlapping islands as a single island:
  • Disabled - overlapping islands won’t be locked
  • Any Part - two islands will be locked together if only they overlap by any part
  • Exact - two islands will be locked together only if they have the same bouding boxes in the UV space and have identical area.
Pixel Margin Margin in pixels the packed UV islands should have. If this parameter is set to a value greater than 0, then the usual ‘Margin’ option will be ignored and the packer will determine the correct pixel margin.
Pixel Padding Distance in pixels between UV islands and the packing box border. This option is disabled and ignored if set to 0 - in such case the distance will be determined by the island margin.
Method Select a method the packer will use to determine proper pixel margin:
  • Adjustment Time (Recommended) - determine proper pixel margin by running an algorithm for a time specified by the Adjustemt Time parameter. This method gives exact results in a short time in most cases
  • Iterative - This method is guaranteed to always give exact pixel margin, but it requres a number of iterations to be performed and ususally gives slightly worse coverage than the Adjustment Time method. Use the Iterative method only if you cannot get good margin results with the Adjustemt Time method, despite setting longer adjustemnt times. Because the Iterative method gives sightly worse coverage, it is recommended to always combine this option with the Heuristic Search functionality.
Adjustment Time (s) The time in seconds packer will spend on determing the proper pixel margin before actual packing begins. This parameter is only used if the ‘Pixel Margin’ parameter is greater than 0.
Heuristic rollup

Heuristic rollup

Option Description
Enable Heuristic Perform multiple packing iterations in order to find the optimal result.
Search Time (s) Specify a time in seconds for the heuristic search. After timeout is reached the packer will stop and the best result will be applied to the UV map. If the time is set to 0 the packer will perfrom the search continuously, until the user manually applies the result by pressing ESC.
Max Wait Time (s) Maximal time the packer will wait for a better result. If the heuristic algorithm is not able to find a tighter packing during that time, the operation will be automatically finished and the best result found so far will be applied to the UV map. If set to 0, then the functionality will be disabled.
Advanced Heuristic Use an advanced method during a heuristic search. With this option enabled add-on will examine a broader set of solutions when searching for the optimal one. This method is most useful when packing a limited number of islands, preferably with a greater number of orientations considered - in such case it allows to find a better solution than if using the simple method. Enabling this option is not recommended when packing a UV map containing a greater number of islands.
Texture Dimensions rollup

Texture Dimensions rollup

Option Description
Lock Dimensions Lock the Texture Height value so it is always equal to the Texture Width value.
Texture Width Set the width of a texture the UV map should packed for.
Texture Height Set the height of a texture the UV map should packed for.
Adjust UV Map To Texture Adjust islands proportions to a non-square UV map before packing. Press the help button to learn more.
Packing Box rollup

Packing Box rollup

Option Description
Tile (X, Y) X and Y coordinates of a tile to be set.
Set Tile Set packing box to a UDIM tile as defined by the ‘Tile (X, Y)’ parameter.
Corner 1/2 X and Y coordinates of the packing box corners.

Release notes

Release 2.1.0
  • Pack to tiles with scaling
  • Pack To Others with automatic scale determination
Release 2.1.5
  • Add the Packing Box rollup
  • Improved UV topology handling
Release 2.2.1
  • Add 3ds Max 2021 support
  • Improve integration with 3ds Max modifier stack
  • Improve statistics reporting
  • Add different modes for the Lock Overlapping functionality
Release 2.2.5
  • Add the Max Wait Time parameter
  • Add Pack To Others and Fixed Scale support in the Groups To Tiles packing mode
  • Add an option to select a pixel margin determination method
  • Further improvements to packing summary and statistics
Last updated on 26 Oct 2019
Published on 26 Oct 2019

Powered by Hugo. Theme by TechDoc. Designed by Thingsym.