Texture 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:
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.
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:
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
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.
You enter the target width; the height is computed from the original aspect ratio.
You enter the target height; the width is computed from the original aspect ratio.
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:
Expand the Texture Resize Options foldout.
Enable Resize Textures During Conversion.
Set the Max Dimension (256 / 512 / 1024 / 2048 / 4096).
Choose filter, output format, and overwrite behavior.
Click Convert Shaders ... textures exceeding the max dimension are GPU-resized and re-assigned to each material during conversion.
All resize settings in the Material Converter persist across sessions, just like the other converter settings.
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:
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:
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.
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
Always back up before using Overwrite Original on many textures. The operation cannot be undone.
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
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