docs
Getting Started
Tutorials
How-To Guides
Explanation
Reference
Help
Getting Started
Tutorials
How-To Guides
Explanation
Reference
Help

Texture Compression

Optimization & Compression

This guide is part of Optimization & Compression. See also: Mesh Compression, Progressive Loading & LODs, Build Settings.

Production builds compress textures using KTX2 (ETC1S or UASTC) or WebP depending on your settings and quality requirements.


Choosing Between ETC1S, UASTC and WebP

FormatETC1SUASTCWebP
GPU Memory UsageLowLowHigh (uncompressed)
File SizeLowHighVery low
QualityMediumVery highDepends on quality setting
Typical usageWorks for everything, best for color texturesHigh-detail data textures: normal maps, roughness, metallicFiles where ETC1S quality is insufficient but UASTC is too large

Quick Guide:

  • Color textures, UI: Use ETC1S for small file size
  • Normal maps, detail textures: Use UASTC for maximum quality
  • Photography, detailed textures: Use WebP if ETC1S quality isn't sufficient

Setting Compression Per Texture

You can override compression settings for individual textures — including compression format, maximum resolution, and progressive LOD generation — without changing the global defaults. This means you don't need to turn off features like progressive loading globally just because one or two textures need different settings.

Unity: Global compression settings

The Compression and LOD Settings component on the Needle Engine / ExportInfo object controls the default compression and LOD settings for all textures in the export:

Unity Compression Settings

Unity Compression and LOD Settings

Unity: Per-texture compression and LOD overrides

On the same Compression and LOD Settings component, use the per-texture overrides section to customize individual textures. Assign any texture you want to override and configure:

  • Compression format — Choose between Automatic, ETC1S, UASTC, or WebP per texture
  • Max size — Limit the maximum resolution for specific textures (e.g. 1024 instead of 8192)
  • LOD generation — Enable or disable progressive texture LOD generation per texture

This is useful when most textures work great with the defaults, but a few need special handling — for example, disabling LODs for a small UI texture, or forcing UASTC on an important normal map.

Unity Individual Texture Settings

Blender: Per-texture compression overrides

Per-texture compression settings are available in two places:

Needle Object panel (Viewport Sidebar → Needle Object tab): At the bottom of the panel, the Material Settings section lists all textures used by the object's materials with inline compression overrides (max size, compression format). This is a quick way to see and adjust all textures for an object at once.

Blender Needle Object panel with Material Settings and per-texture compression

Properties panel → Material tab → Needle Material Settings: Each texture used by the selected material is listed with an override toggle. Enable the override to customize:

  • Max Size — Limit the maximum resolution for that texture
  • Compression format — Choose between Auto, None, ETC1S, UASTC, or WebP
  • Quality — Adjust WebP quality (when using WebP compression)

The following screenshots show the per-texture compression options in the Blender material panel:

Blender Per-Texture Compression Settings

Blender Texture Compression Options with Tooltip


Related Documentation

  • Progressive Loading & LODs — Texture LODs, mesh LODs, and per-texture LOD overrides
  • Mesh Compression — Draco & Meshopt compression
  • Production Build Settings — Build types and build window
  • gltf-progressive — Progressive loading for any three.js project
Suggest changes
Last Updated: 4/21/26, 8:09 PM

Extras

ChatGPT Ask ChatGPT Claude Ask Claude
Copy Markdown

Navigation

  • Getting Started
  • Tutorials
  • How-To Guides
  • Explanation
  • Reference
  • Help

Extras

ChatGPT Ask ChatGPT Claude Ask Claude
Copy Markdown