apertureTexture Resizer

Texture Studio's Texture Resizer lets you resize one or many textures at once using the GPU. It uses a high-quality Mitchell-Netravali bicubic filter (4×4 kernel) to produce sharp, artifact-free results while keeping the aspect ratio intact.


Opening the Resizer

There are several ways to open the Texture Resize window:

Entry Point
How

Menu bar

Tools → Texture Studio → Texture Resizer

Material Inspector

Click the Resize Textures button at the bottom of any Material Inspector. All textures from that material are pre-loaded.

Texture Inspector (single)

Select a texture asset, then click the Resize Texture button in its Inspector.

Texture Inspector (multi)

Select multiple texture assets, then click the Resize N Textures button.

Project Window

Right-click one or more selected textures → Resize Textures.

Drag-and-drop

Drag textures from the Project window directly onto the Resize window.

circle-info

When opened from a Material Inspector, the window tracks which shader property each texture came from. After resizing, the material references are automatically updated to point to the resized files.


The Resize Window

The window is divided into four sections.

1. Quality Presets

One-click buttons that set the max dimension and output format for common target platforms:

Preset
Max Dimension
Output Format

Mobile Low

256 px

PNG

Mobile Mid

512 px

PNG

Mobile High

1024 px

PNG

Desktop Low

512 px

PNG

Desktop Mid

1024 px

PNG

Desktop High

2048 px

PNG

Applying a preset switches the resize mode to Width and caps each texture's largest dimension at the preset value. Textures already smaller than the threshold are left untouched.

2. Resize Settings

Setting
Description

Resize Mode

Choose how the target size is calculated.

Scale (%)

Percentage mode: 1...400 %.

Target Width / Height

Pixel mode: enter one dimension; the other is calculated automatically to preserve aspect ratio.

Filter

Bicubic (Mitchell-Netravali ... best quality) or Bilinear (GPU hardware ... fastest).

Output Format

Same as Source, PNG, JPG, TGA, or EXR.

JPEG Quality

1...100 slider (only visible when JPG is selected).

Overwrite Original

On ... replaces the original file. Off ... creates a new file with a _resized suffix.

Resize Modes

Scales width and height by the given percentage. For example, a 2048×1024 texture at 50 % becomes 1024×512.

3. Batch List

Every queued texture appears as a card showing:

  • Thumbnail ... visual preview.

  • Name ... the asset name.

  • Texture Type ... Normal Map, Default (Color), Sprite, Lightmap, Single Channel, etc.

  • Graphics Format ... the runtime format (e.g., RGBA_DXT5_SRGB).

  • File Size ... on-disk size (KB / MB).

  • Resolution ... current size → target size (e.g., 2048 × 1024 → 1024 × 512).

  • Material ... if opened from a Material Inspector, shows the material name and property.

Click the button on any card to remove it from the batch.

4. Resize Button

The green Resize N Textures button at the bottom starts the batch. A progress bar shows the current texture name and overall progress. When finished, a summary dialog reports how many textures were resized, skipped (already at target size), or failed.


Material Converter Integration

The Material Converter window (Tools → Texture Studio → Material Converter) has a Texture Resize Options foldout section that lets you resize textures as part of a pipeline conversion:

  1. Expand the Texture Resize Options foldout.

  2. Enable Resize Textures During Conversion.

  3. Set the Max Dimension (256 / 512 / 1024 / 2048 / 4096).

  4. Choose filter, output format, and overwrite behavior.

  5. Click Convert Shaders ... textures exceeding the max dimension are GPU-resized and re-assigned to each material during conversion.

circle-check

GPU Pipeline

The resize operation runs entirely on the GPU:

Why Bicubic?

The Mitchell-Netravali filter (B = 1/3, C = 1/3) is the industry-standard choice for general-purpose image resampling. Compared to bilinear filtering:

  • Down-scaling ... produces sharper results without moiré or aliasing.

  • Up-scaling ... avoids the blurriness of bilinear interpolation.

  • Normal maps ... preserves directional detail that bilinear tends to smooth out.

The bilinear option is available when speed is more important than quality (e.g., quick previews or very large batches).

Color Space Handling

The resizer automatically detects whether a texture is sRGB or Linear from the TextureImporter.sRGBTexture setting and creates the RenderTexture with the correct read/write mode. This prevents gamma shifts when resizing normal maps, mask maps, or height maps.


Importer Settings Preservation

When creating a new file (non-overwrite mode), the following TextureImporter settings are copied from the source:

Setting
Copied?

Texture Type (Normal, Default, etc.)

sRGB

Alpha Source

Alpha Is Transparency

Mipmaps Enabled

Filter Mode

Wrap Mode

Aniso Level

Texture Compression

Max Texture Size

Set to resized dimensions

Is Readable


Format Conversion

You can change the output format independently of resizing. For example, convert a TGA to PNG, or an EXR to JPG:

Format
Extension
Notes

Same as Source

...

Keeps the original file format.

PNG

.png

Lossless, supports alpha. Recommended for most use cases.

JPG

.jpg

Lossy (quality slider 1...100). Smaller files, no alpha.

TGA

.tga

Uncompressed, supports alpha. Large files.

EXR

.exr

HDR. Best for emission maps or light probes.


Inspector Visibility

If the Resize button in the Material or Texture Inspector is not needed, you can hide it from Project Settings → Texture Studio → Inspector Visibility:

  • Texture Inspector ... Generator ... controls the Generator foldout (includes the Resize button).

  • Material Inspector ... Generator ... controls the Generator foldout on materials.

  • Material Inspector ... Hue Tool ... controls the Hue Adjust foldout.

circle-info

The Resize Textures button on the Material Inspector is always visible when a single material is selected, independently of the Generator visibility toggle.


Tips & Best Practices

circle-exclamation
  • Use presets for quick optimization ... Select all textures on a character, right-click → Resize Textures, pick "Mobile Mid", hit Resize.

  • Batch materials before publishing ... Open the Material Converter, enable both "Auto-Generate Missing Textures" and "Resize Textures During Conversion" to convert pipeline + generate maps + downscale in a single pass.

  • Normal maps ... Bicubic preserves directional detail better than bilinear. Always use Bicubic for normal maps.

  • EXR for HDR ... If your emission maps or light data need to stay in HDR, choose EXR output format.

  • Non-destructive workflow ... Keep Overwrite Original off during iteration. Switch it on only for final builds.


Troubleshooting

Problem
Solution

Resize shader not found

Ensure Editor/Shaders/TextureResizeBicubic.shader exists. Reimport Texture Studio if missing.

Textures look darker/lighter after resize

Check that the source texture's sRGB setting matches its usage (color textures = sRGB on, data textures = off). The resizer preserves this flag.

Material still references old texture

When using non-overwrite mode from the standalone window (not from Material Inspector), you need to manually reassign. Use the Material Inspector entry point for automatic reassignment.

Progress bar hangs

Very large textures (8K+) may take a few seconds per texture. If Unity becomes unresponsive, wait for the GPU blit to complete.

JPEG output has no alpha

Expected ... JPEG does not support alpha channels. Use PNG or TGA if you need transparency.

Last updated