Documentation / Texture Pipeline
Unreal Engine · Documentation

Texture Pipeline

Advanced channel packing, batch processing and texture optimization for Unreal Engine. The documentation source calls the core tool Advanced Channel Packer.

ORM packingBatch by setBatch by folderTexture optimizer
Overview

Pack channels consistently and automate material updates.

The Advanced Channel Packer creates a new packed Texture2D by sampling channels from up to three source textures. It supports presets such as UE ORM and Unity Metal/Smooth, custom output-channel mappings, per-channel adjustments and optional material rewiring.

Key features

Packing, automation and source control

PresetsUE Standard (ORM), Unity Standard (Metal/Smooth) and Custom.
Channel mappingRoute source R/G/B/A or constants into output R/G/B/A.
Per-channel adjustmentInvert, multiplier, gamma and optional sRGB-to-linear conversion.
Material automationOptional automatic rewiring of base Materials that use source textures.
Source controlPreflight overwrite checks, material checkout attempts and add marking.
Batch commandletFolder-based packing with suffix grouping, dry run and optional material rewiring.
Installation

Install and open the tool

  1. Install the plugin from Fab into the project or Engine installation.
  2. If the plugin package contains C++ source, regenerate project files and compile.
  3. Open Unreal Editor and enable the plugin in Edit > Plugins.
  4. Restart the editor.

Open it through Tools > Texture Tools > Advanced Channel Packer…. The tool opens as a dockable Nomad tab.

Single pack

Build one packed texture

  1. Assign up to three Texture2D inputs by browsing or dragging from the Content Browser.
  2. Choose UE Standard (ORM), Unity Standard (Metal/Smooth) or Custom.
  3. Configure the output package path and suffix.
  4. Click PACK TEXTURES.
Missing inputs

Missing texture slots are allowed. If a mapping samples a missing slot, the channel resolves to black. Textures also need valid Source data to be packable.

Batch by set

Process naming-based texture groups

Use this workflow when textures follow naming sets, for example one group per material.

  • Content Dir: folder to scan.
  • Suffixes: comma-separated suffixes used to detect sets.
  • Missing: skip incomplete sets or fill missing channels with black or white.
  • Resolution: choose highest or lowest input resolution.
  • Detect Sets: scan and preview detected sets.
  • Run Batch: pack all detected sets using the default ORM workflow.
  • Export Report: save a JSON report of packed, skipped and failed items.
Batch by Set workflow
Batch by folder

Process every texture in a folder

  • Choose Source Dir and Output Dir.
  • Set an Output Suffix.
  • Confirm the active preset.
  • Preview source textures and output paths.
  • Run the batch or cancel an active operation.
Texture Optimizer

Reduce texture size and rescale large textures

  • Scan a source folder.
  • Choose TinyPNG-style quantization or JPEG lossy compression.
  • Adjust color count or quality depending on the selected algorithm.
  • Optionally rescale textures above a selected maximum size.
  • Protect ORM-style maps from lossy compression using suffix detection.
  • Preview Scan before running the optimizer.
Texture Optimizer workflow
Technical notes

Performance and implementation

  • Packing is CPU-based and uses ParallelFor for per-pixel work.
  • Large textures can require large temporary buffers.
  • Resampling duplicates pixel arrays and increases peak memory usage.
  • The operation blocks the editor UI while the game-thread operation completes.
  • Texture source extraction uses the first mip of Texture2D source data.