XAtlas
Tileable materials are quick to dress a level with, but they add up. Every material brings its own textures, and across a scene that becomes dozens of small texture sets to stream and budget for, each at a different texel density. An atlas fixes that with one texture set, a known memory cost, and a consistent density across everything that uses it. The trouble has always been getting there: re-unwrapping, baking, guessing at sizes, then finding out in the level whether it held up.
XAtlas does it in the viewport. Select the meshes you already dressed, pick a density, and watch the result on your models, and see how well the sheet is used, before anything is saved. If it isn’t right, press Escape and your original materials are back. It works the same on a new project or one that’s well underway, because nothing you already have is touched until you decide it should be.
Packing
Packs albedo, normal, ORM, and emissive into one square sheet at 1024, 2048, or 4096
Separate occlusion, roughness, and metallic textures are packed into ORM for you
Each material gets its own place on the sheet, sized by the texel density you choose
A texture that isn’t square keeps its shape, so a wide brick stays wide
Starts from the density your surfaces already have, weighted by area
Fill one sheet, hold your density across extra sheets, or take the highest density that still fits
Where a texture has to shrink, the pattern can repeat so the surface keeps the density you asked for
Or use Pack textures to pack each texture at its own size and set the repeat on each instance yourself
A gutter around each texture stops neighbors bleeding into each other
See it before you commit
The sheet is drawn in the dialog as you work
Under the sheet, a readout shows how much of it is filled, how much is gutter, and how much is still empty
If a smaller sheet would hold the same density, or the density could go higher without shrinking a texture, XAtlas tells you before you create anything
Preview on meshes shows the density on your actual models in the level
Add or remove meshes with the dialog open and the sheet follows
Escape closes it and puts your original materials back
Safe on existing work
Your existing UVs stay put. The atlas is written to its own channel, channel 2 by default
The lightmap channel is never touched
Leave Duplicate mesh on and the original asset stays untouched. XAtlas writes the new channel onto a copy and points the actors in the level at that copy. Turn it off and the channel is written straight onto the mesh you selected
A tiling texture on an island unwrap is packed with the rest. A unique texture shows up checked, and you uncheck it to leave it on the mesh
Come back to it later
Update the same atlas when the set or density changes
Running it again never stacks changes. It always starts from the mesh’s original UVs
Meshes you drop from an update go back to their originals
Still yours to tune
Tint, brightness, desaturation, and roughness, metallic, occlusion, and normal strength stay live on the material
A shared detail normal with its own tiling, off until you turn it up
World alignment as a switch on the master material
Build on it
The repeat lives in a material function, so the texture set is easy to extend
Add your own parameters after the samples, or place the function inside a material layer and sample the atlas from there
Works inside a layer for Extile Plus
Shortcut
Ctrl+Alt+A opens XAtlas, rebindable in Editor Preferences
XAtlas_Help.pdf
(Video coming soon)