The Himalayas, IN · UTC+5:30
← All tools
UV Texture Repacker (Beta)

UV Texture Repacker (Beta)

TypeArtist Tools
KindDesktop App
StatusActive
SourceOpen source
LanguagePython
Description

Takes N input meshes, each with its own textures, and produces one square atlas texture plus N output meshes whose UVs now point into the packed atlas.

The transfer is pixel-based, not bake-based. Every output texel is sampled directly from one source texture via the barycentric coordinates of the triangle that covers it — what the artist painted is exactly what lands in the atlas.

Packed atlas result

Why it exists

The usual atlas pipeline in Blender, Substance, or Max rebakes through a renderer. Bakes can miss occluded geometry, introduce sampling noise, or need cage tuning. For the common case of "I already have good textures and just want them repacked onto a shared atlas", a render pass is unnecessary risk — so this tool does the repack by direct pixel copy instead.

What's inside

Two packers: an in-tree bitmap packer (numba-accelerated, reaches ~94% atlas utilisation and stays fast at any output resolution) and an optional xatlas backend. Atlas resolution runs from 512 up to 32K, with controls for island padding, edge dilation, resampling filter, optional 90-degree shell rotation (tangent-space normals are re-shaded automatically), and world-scale priority so physically larger meshes claim more texels. It runs as a GUI or fully from the CLI with per-mesh, per-channel texture flags.

This tool is part of my UV suite and will likely merge into a single app down the line.

← Back to tools