Home / Docs / Packing & algorithms

Packing & algorithms

TexelPack gives you four packing strategies and a stack of refinements — rotation, straightening, stacking, grouping and destinations — to squeeze the most out of your atlas.

The four packing modes

ModeSpeedQualityBest for
MAXRECTS★★☆★★★Final assets, production quality
Guillotine★★★★★☆Everyday use
Shelf★★★★☆☆Fast iteration on simple meshes
Max Quality★☆☆★★★Shape-aware packing by real geometry

The quality mode selector (Fast / Balanced / Max Quality) sits at the top of the algorithm panel. In Balanced you choose the individual algorithm; Fast forces Shelf; Max Quality uses shape-aware mask packing.

Max Quality (shape-aware) mode

Instead of packing axis-aligned bounding boxes, Max Quality packs islands by their real rasterized shape, so small pieces slot into the holes and concavities of larger ones. Give it a time budget with search time and it keeps trying alternative layouts until time runs out, always keeping the best result found (an "anytime" search).

Rotation & straighten

Stacking & lock

Stack identical islands

Repeated parts — bolts, bullets, modular pieces — are detected (including mirrored copies) and stacked onto a single UV slot, so they share texels and multiply effective texture resolution. A similarity tolerance slider controls how close two islands must be to count as identical: 0 is an exact match; raise it to stack organic, near-identical parts.

Lock overlapping islands

UVs you intentionally stacked on top of each other (mirrored halves, for instance) are detected by matching footprint and moved together as a rigid group, instead of being torn apart during packing.

Group packing

Pack one UDIM tile per object, material or collection — built for level-atlasing pipelines where each logical group needs its own tile.

Destinations & excluded regions

Pinned islands & UDIM

Margins & pixel precision

Performance

On heavy meshes, TexelPack uses vectorized (numpy) island extraction: a 100k-polygon mesh is analyzed in well under a second. Packing runs incrementally in a background thread, so the UI stays responsive and Esc really cancels.