User Guide: Pack

From UVLayout Docs

(Difference between revisions)
Jump to: navigation, search
Revision as of 06:42, 21 October 2016 (edit)
Headus (Talk | contribs)

← Previous diff
Current revision (02:19, 18 October 2024) (edit) (undo)
Headus (Talk | contribs)

 
(16 intermediate revisions not shown.)
Line 1: Line 1:
-{{:User Guide: Menu}} [[Image:UserGuide-Pack.png|right|]] 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.+{{:User Guide: Menu}} [[Image:UserGuide-Pack.png|right|]] Open up the '''Pack''' panel to find tools for the tight packing of UV shells to minimize empty texture space.
 + 
 +----
-<br><br><div id="pro"><div id="pro8"></div> {{Pro3|pro8|User_Guide:_Pack#pro9}}  
; 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. ; 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.+: 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. '''Note:''' No Rotation testing is done. Use the "Pack All" button (see below) if you've enabled that option.
: 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. : 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 rotated, moved or scaled with the usual Space LMB/MMB/RMB combinations. Selected boxes can also be transformed from the Move/Scale/Rotate panel buttons. +: 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. : 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. ; 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.
-</div>+ 
 +; Unstack Overlapping : If you have overlapping shells, but don't want them to be, then click this button and they will be moved across, then up if need be, to empty locations in adjacent UV tiles. Its different to the normal packing because shells don't change their relative positions within tiles with this tool. By default all visible shells will be moved, but you can LMB select to limit the action to just the selected shells. If the packing tool's '''Tile U''' dimension is greater than 1, then that is the maximum width of tiles unstacked to, otherwise the Display '''Max U''' setting is used.
 + 
 +; 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.
 + 
 +----
 + 
 +; Tile : 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.
 + 
 +; 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.
 + 
 +; Don't Resize Tiles : By default, UVLayout will uniformly enlarge or shrink the UV tiles to minimize the amount of empty space left after packing. Tick this if you don't want the tiles resized.
 + 
 +; Pack Tiles : If you have shells spread over many tiles with empty tiles between or lots of empty space within them, this tool can quickly compact everything. Its different to the normal packing because shells don't change their relative positions within tiles with this tool. Be default all visible shells will be moved, but you can LMB select to limit the action to just the selected shells.
 + 
 +----
 + 
 +; Bleed : The '''Bleed''' value controls the size of the gap left between shells after packing. You can select between pixels or real world units (for pattern making applications).
 + 
 +; 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.
 + 
 +----
; 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. ; 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.
Line 23: Line 47:
: 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. : 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.
- 
-: 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. 
: 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. : 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. : 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.
Line 32: Line 56:
</div> </div>
-; Tile : 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.+<div id="hob"> {{Hob3}}
 +; Rotate : As above, but the rotations are limited to 90 degree increments.
 +</div>
-; Bleed : 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.+; 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. {{Eg|Pack Mask}}
-; 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.+; 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. {{Eg|Pack Wrap}}
-; 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.+; Pack Selected Only : Only shells selected with the LMB will be packed.
-; 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.+; 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.
-; 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.+; 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.
-; 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.+----
- +
-; Pack Selected Only : Only shells selected with the LMB will be packed.+
- +
-; 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. {{Eg|Pack Mask}}+
- +
-; 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. {{Eg|Pack Wrap}}+
; Hotkeys : ; Hotkeys :
<pre> <pre>
[ or ] : pack shells in box, or if no box is picked, packs all shells [ or ] : pack shells in box, or if no box is picked, packs all shells
 + * Note: No Rotation testing done. Use the "Pack All" button for that.
{ or } : toggle box fixed/free status { or } : toggle box fixed/free status
-\ : rotate box 90 degrees, or if no box is picked, rotates shells+\ : rotate box, shell or tile 90 degrees
-Ctrl-\ : rotate shell, not surrounding box+Ctrl-\ : rotate shell inside a box
Del : delete box Del : delete box
| : toggle orientation lock for shell, selected shells or box | : toggle orientation lock for shell, selected shells or box

Current revision

Cover Page
About UVLayout
Load/Save
Display
Hotkeys
Edit
Optimize
Pack
Snap/Stack/Sort
Move/Scale/Rotate
Render
Pattern
Groups
Layers
Reshape
Segment
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.
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. Note: No Rotation testing is done. Use the "Pack All" button (see below) if you've enabled that option.
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.
Unstack Overlapping 
If you have overlapping shells, but don't want them to be, then click this button and they will be moved across, then up if need be, to empty locations in adjacent UV tiles. Its different to the normal packing because shells don't change their relative positions within tiles with this tool. By default all visible shells will be moved, but you can LMB select to limit the action to just the selected shells. If the packing tool's Tile U dimension is greater than 1, then that is the maximum width of tiles unstacked to, otherwise the Display Max U setting is used.
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.

Tile 
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.
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.
Don't Resize Tiles 
By default, UVLayout will uniformly enlarge or shrink the UV tiles to minimize the amount of empty space left after packing. Tick this if you don't want the tiles resized.
Pack Tiles 
If you have shells spread over many tiles with empty tiles between or lots of empty space within them, this tool can quickly compact everything. Its different to the normal packing because shells don't change their relative positions within tiles with this tool. Be default all visible shells will be moved, but you can LMB select to limit the action to just the selected shells.

Bleed 
The Bleed value controls the size of the gap left between shells after packing. You can select between pixels or real world units (for pattern making applications).
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.

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]
Rotate 
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]
Rotate 
As above, but the rotations are limited to 90 degree increments.

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]
Pack Selected Only 
Only shells selected with the LMB will be packed.
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.

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.

Hotkeys 
[ or ]      : pack shells in box, or if no box is picked, packs all shells
            * Note: No Rotation testing done. Use the "Pack All" button for that.
{ 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