User Guide: Pack

From UVLayout Docs

Jump to: navigation, search
Cover Page
About UVLayout
Quick Start
Interface Plugins
Download PDF
Open up the Pack panel to find tools for the tight packing of UV shells to minimize empty texture space. Currently shells are only moved around in this process, so you may need to rotate some by hand for optimum packing.
New Box 
This creates a new packing box around any picked shells. Shells can be place in or taken out of an existing box simply by dragging them with the usual Space-MMB combination. Use the Del hotkey to delete a box; moving all of the shells outside of a box will also delete it. Click on Delete All to delete all boxes.
Use the [ or ] hotkeys to repack the box under the mouse pointer. If no box is under the mouse pointer, then all shells and boxes will be packed into the 0-to-1 texture square.
A box (and its contents) can be moved around using the Space-MMB combination on one of its corner handles. It can be reshaped using Ctrl-MMB on one of these handles; this will also repack that box. Use the \ hotkey to rotate a box by 90 degrees.
Select boxes by clicking on one of their corner handles, and they can then be moved or scaled with the usual Space MMB/RMB combinations. Selected boxes can also be transformed from the Move/Scale/Rotate panel buttons.
By default, boxes are free, meaning they will be moved around as required during the packing process. You can fix a box's position with the { or } hotkey; this will turn it from green to blue. Other shells and boxes will then be packed around that box, but it wont be moved itself. Use the same hotkey if you want to toggle it back to free moving.
Box and Lock Overlapping 
If you have overlapping shells that you want to keep together during packing, then click this button and they will all be boxed and locked. Be default all visible shells will be checked, but if you LMB select any first, then only those selected shells will be processed.
Quality Fast/Mid/Best 
You will get tighter packing with Best selected, but Fast isn't too bad either, and its a lot faster. Mid is part way between these two.
Map Rez 
Specify here the resolution of the texture map you expect to use with the UVs. This in combination with the Bleed value determines the apparent size of the gap left between the shells after packing.
[Professional Version Only]
Tick this and shells will be rotated by the selected degree increments to see if that gives better packing. It just randomly tries different combinations, so use the arrows to set the amount of time you want to let it run for. Use the | hotkey to lock or unlock the orientation of individual or select shells or boxes. Shells or boxes locked in this way won't be rotated, but can still be moved around during the packing.
As you reduce the degree increments (e.g. from 90 to 45) then the number of possible shell position and rotation combinations grows exponentially, so it will take a lot longer to find the best packing solutions. This tool will utilize multiple CPU cores though, so the more of those you have, the greater the chance that better packing solutions will be found in the allotted time.
Be careful though about running this for extended periods on systems with poor cooling, such as laptops. Consider running it for double the amount of time, but use the Free CPU Cores preference to halve the number of CPU cores utilized.
The special case of 0 degree increments actually does no rotation, but still randomly shuffles the order that shells are packed. Normally shells are packed from largest to smallest, but sometimes randomly selecting shells using this 0 degree rotation mode can find better packing solutions.
Regardless of if you have auto save turned on or not, if run for more than a minute, the packing rotation tool will make an auto save of each next best packing solution. This means you can set it off before going to lunch say, then be confident that in the event of a software crash or power failure, you will be able to load the last best solution.
[Hobbyist Version Only]
As above, but the rotations are limited to 90 degree increments.
If you want your shells and boxes packed across multiple tiles, specify the dimensions of that tile grid here. Try not to make the grid arbitrarily large (e.g. 100 x 1) if smaller values will do, as this will reduce the precision/tightness of the packing.
The Bleed value controls the pixel size of the gap left between shells after packing.
Pack All 
Clicking on Pack All will repack the contents of all boxes, then packs everything into the 0-to-1 texture square or tile grid. You might do this if you have changed the Bleed setting and want to apply that across all shells and boxes.
Pack Selected Only 
Only shells selected with the LMB will be packed.

All pack settings below the line are preserved alongside the UVs and geometry when they're saved into UVL files.

Show Tile Coverage 
Tick this to show, after packing, a percentage covered value at the top of each tile. The higher this number the better, indicating less empty wasted space.
Show Shell Bleeds 
Tick this to see a visual indicator of the pixel bleed region around each shell. If you want to manually position shells, this is a good way ensure there's enough gap left between them.
Allow Box Overlaps 
Sometimes space will be left inside a box after packing. Ticking this option will allow other boxes or shells to use this empty space during global packing operations.
Shrink Boxes To Fit 
Tick this to shrink wrap boxes around the contents after packing.
Don't Resize Shells 
By default, UVLayout will uniformly enlarge or shrink all the UV shells to minimize the amount of empty space left after packing. Tick this if you don't want the shells resized.
Lock All To Tile 
Shells wont be moved outside of their current tile during packing. Ticking this option affects all shells, or you can use the # hotkey to apply the locking selectively to shells and boxes.
Use Trace Mask 
This option allows you to load a black and white Display Trace image as a mask for packing shells into the UV square. Shells will be packed into the white areas, and black areas will be left empty. [Example]
Allow Wrapping 
This option packs everything into the 0 to 1 tile but will allow shells to extend over the boundary of the tile if they wrap around into space on the opposite side. To check the results, tick the Show Repeats option under the Display tab. [Example]
[ or ]      : pack shells in box, or if no box is picked, packs all shells
{ or }      : toggle box fixed/free status
\           : rotate box, shell or tile 90 degrees
Ctrl-\      : rotate shell inside a box
Del         : delete box
|           : toggle orientation lock for shell, selected shells or box
Pad 1/3/7/9 : toggle corner preference for shell, selected shells or box
#           : toggle tile lock for shell, selected shells or box