# Texture Optimization

Hand-made clothing packs are often bloated with textures the game doesn't like: odd sizes, no mipmaps, wrong compression. The texture optimiser re-encodes them smaller. It shows you what it will save before anything is written, and it never makes a file bigger.

:::hint{type="info" title="Premium"}
Texture optimisation is a **Premium** feature everywhere it appears: on an item, a texture, a selection, the whole project, and **Quick Optimize Textures** in the Windows right-click menu.
:::

## Where to start it

| Scope | How |
| --- | --- |
| One texture | Right-click it in the item's Textures panel and choose **Optimize texture…**. |
| One item | Click the **Optimize** tool tile (*Texture size*) in the item panel, or right-click the item and choose **Optimize textures…**. |
| Textures inside a model | Right-click the item and choose **Optimize embedded textures**, or use the **Embedded** window in the Textures panel. |
| Several items | Select them, right-click and choose **Optimize textures in the selected items…** or **Optimize embedded textures**. |
| The whole project | **Optimize project textures…** in the menu, or **Scan and optimize…** in the project settings. Every attached and embedded texture is included. Untick **Include embedded** to leave models alone. |
| A .ytd outside a project | Right-click it in Windows Explorer and choose **Quick Optimize Textures** (under "Show more options" on Windows 11). The file opens in the Inspect window on its optimise view. A backup copy is written beside it before the file is rewritten. There is no Ctrl+Z here, so use the backup to go back. |

Every way opens the same settings, with a before/after estimate. Files that already match your settings are skipped rather than re-encoded.

## Easy: one Quality slider

:::frame{caption="An optimise run with the size before and after."}
![The Optimize window after a run, showing the size before and after and each texture with its saving](https://pub-57d6558d0e204696b4cdeee5d172e561.r2.dev/cloth-tool/features/texture-optimisation.333a561c5d.webp)
:::

In **Easy** mode you move one **Quality** slider, from "smaller · faster" to "best looking":

| Setting | What it does |
| --- | --- |
| **Lowest** | Nothing larger than 1024 across, which is about a quarter of the bytes for each 2048 texture, and the fast compressor. Fine print and smooth shading soften a little. Good for a first pass or a very large pack. |
| **Medium** | Every texture keeps its resolution and gets the smallest format that holds everything you can see. Shrinks a pack without you having to check the result. |
| **Highest** | Full size, BC7 for anything see-through, and the sharpest mip filter. It is the slowest by far, so check the estimate before starting on a large pack. |

If you change something in Advanced, the slider shows **Custom**. Picking a preset again replaces your settings.

## Advanced: every setting

Switch to **Advanced** for every setting. Each one has a **?** with examples.

| Setting | What it does |
| --- | --- |
| **Format** | **Automatic** (recommended), or force BC1, BC3, BC5 or BC7. |
| **Maximum size** | The setting with the largest effect on pack size, and the one most likely to show. **No limit** keeps the resolution. |
| **Mipmaps** | Smaller copies used at distance. They make the texture smoother far away and stop shimmering. Leave them on. |
| **Smallest mip** | Where the mip chain stops. A matter of tidiness more than size. |
| **Compression** | **Quality** (the default) or **Fast**. Fast is about twenty times quicker and slightly softer. Use it for very large packs or a first pass. |
| **BC7 for transparency** | Stores textures that need a full alpha channel as BC7 instead of BC3. It is the same size, looks cleaner and is much slower. Solid textures and normal maps are not affected. |
| **Let files get bigger** | Off by default. Turn it on only to add mipmaps to a pack that shipped without them. |
| **Filter** | The mip filter: Box, Triangle, Mitchell or Kaiser. Box is neutral, and Kaiser keeps the most detail at distance. |

Non-power-of-two textures are resized to the nearest power of two, because GTA V needs that.

### What Automatic picks

| Texture | Format |
| --- | --- |
| Already compressed | **Keeps its current format**. Normal maps are never switched to another format. |
| No transparency, or cut-out transparency (lace, hair, eyelets) | **BC1**: 4 bits per pixel, the smallest. BC1 stores one bit of alpha. |
| Soft or partial transparency | **BC3**: 8 bits per pixel, or BC7 when **BC7 for transparency** is on. |

Forcing one format on a whole project is usually worse than Automatic, and it is the quickest way to make a pack heavier than it started.

## The never-grow rule

Optimising never makes a file bigger. Anything that would come out heavier than it went in is left exactly as it was, unless you turned on **Let files get bigger**. A run that changes nothing says so. A .ytd that holds several textures keeps all of them.

## Managed copies, backups and undo

- When you import, the files are copied into the project. Optimising rewrites the project's copy, never your original files.
- Before textures inside a model are optimised for the first time, the model is backed up as an `.optbak` file beside it. Restoring the model's original textures also undoes a mesh optimisation.
- An optimise in a project can be undone with **Ctrl+Z**.
- The log reports how many files were optimised and skipped, and how much was saved.

## Find oversized textures first

New in 2.0.8, a check flags **a large texture the mesh barely uses**. It reports how much of the texture the mesh actually covers and suggests a smaller size to shrink it to. Its one-click fix opens the optimiser on that texture with the suggested size. You can tune the thresholds (**Wasted texture space**) in the validation settings. See [Validation](/cloth-tool/about-the-tool/validation).

:::hint{type="success" title="Rule of thumb"}
Run **Medium** over the whole project before you build. Use **Lowest** only when pack size matters more than close-up detail, and check printed text afterwards.
:::

## Exporting

To get textures out of the project, right-click in the Textures panel and choose **Export all as DDS…** or **Export all as PNG…**.

## Related pages

- [Items and Textures](/cloth-tool/about-the-tool/items-and-textures): texture variants and the Textures panel.
- [Mesh Optimizer](/cloth-tool/about-the-tool/mesh-optimizer): make the models lighter too.
- [Validation](/cloth-tool/about-the-tool/validation): texture size checks and one-click fixes.
- [Limits](/cloth-tool/information-and-errors/limits): what the game tolerates.
