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
Documentation

Overview

Advanced Channel Packer

Advanced Channel Packer is an Unreal Engine Editor tool that builds a new packed Texture2D by sampling channels from up to three source textures. It is designed for artists and technical artists who want consistent mask packing (for example UE ORM or Unity Metal/Smooth), with optional automatic rewiring of affected base Materials.

Documentation

KEY FEATURES

  • Presets and mappings
  • Built in presets: UE Standard (ORM) and Unity Standard (Metal/Smooth)
  • Custom channel mapping per output channel (R, G, B, A)
  • Channel source options: None (Black), Constant (White), Tex 0 to Tex 2 channels (R, G, B, A)
  • Per channel adjustments
  • Invert (out = 1 - in)
  • Multiplier (0.0 to 4.0)
  • Gamma (power curve)
  • Optional forced sRGB to Linear conversion when sampling (per channel mapping)
  • Texture inputs
  • Three input slots with thumbnail preview
  • Pick from an asset picker popup
  • Drag and drop Texture2D assets from the Content Browser onto a slot
  • Output creation
  • Creates a new Texture2D asset at a user provided Content Browser path
  • Output suffix override (for example _ORM)
  • Output settings driven by the selected preset (compression, sRGB flag, mip settings)
  • Material automation
  • Optional auto rewire of base Materials that reference any of the source textures
  • Creates a new TextureSample for the packed texture and reconnects matching material inputs
  • Source Control support
  • Preflight check: blocks overwrite if the output path is checked out by another user
  • Attempts to check out affected Materials before rewiring
  • Marks the created packed texture for add
  • Commandlet
  • Batch pack textures in a folder using suffix based grouping
  • Optional dry run
  • Optional material rewiring
Documentation

TECHNICAL DETAILS

  • Modules (Editor / Runtime)
  • TexturePacker (Editor module)
  • No runtime module in the provided source
  • Dependencies
  • UnrealEd, EditorSubsystem
  • ToolMenus, LevelEditor, WorkspaceMenuStructure
  • Slate, SlateCore, EditorStyle, PropertyEditor
  • AssetRegistry, AssetTools, ContentBrowser
  • MaterialEditor
  • SourceControl
  • ImageCore, ImageWrapper, ImageUtils
  • Special systems used
  • CPU packing with ParallelFor
  • Texture source extraction via UTexture2D::Source.GetMipData (Editor only)
  • FImageUtils::ImageResize for bilinear resampling
  • Asset Registry referencer queries to discover dependent Materials

.

  • Performance considerations
  • Packing is CPU based. Large textures can be slow and allocate large temporary buffers.
  • Resampling duplicates pixel arrays, increasing peak memory usage.
  • Operation is executed on the game thread and will block the editor UI until it completes (packing itself parallelizes per pixel work).
Documentation

INSTALLATION

  • Install the plugin from Fab into your project (recommended) or Engine installation.
  • If the plugin includes C++ source, regenerate project files and compile.
  • Open Unreal Editor.
  • Go to Edit > Plugins.
  • Enable the plugin.
  • Restart the editor.
Documentation

HOW TO OPEN THE TOOL

  • Main menu path:
  • Tools > Texture Tools > Advanced Channel Packer…
  • The tool opens as a dockable Nomad tab titled:
  • Advanced Channel Packer
Documentation

WORKFLOW GUIDE

1) Open the window

WORKFLOW GUIDE interface
WORKFLOW GUIDE interface

2) Assign input textures (Tex 0 to Tex 2)

  • Use Browse on a slot to pick a Texture2D from the popup asset picker.
  • Or drag and drop a Texture2D from the Content Browser onto a slot.
WORKFLOW GUIDE interface

Notes based on implementation: - Missing slots are allowed. If a mapping samples a missing texture slot, that channel evaluates to 0 (black). - The tool reads texture Source data (first mip). Textures without valid Source data cannot be packed.

3) Choose a preset

  • Preset dropdown options include:
  • UE Standard (ORM)
  • Unity Standard (Metal/Smooth)
  • Custom
WORKFLOW GUIDE interface

4) Configure output path and suffix

  • Output Folder is a text field and must be a valid long package path (for example /Game/Textures).
  • Suffix is appended to the base name inferred from the first assigned texture (for example _ORM).
  • The … button focuses the Content Browser. It does not pick a folder automatically.
Output Folder and Suffix fields.
Output Folder and Suffix fields.

5) Pack

  • Click PACK TEXTURES.
  • The tool shows a progress dialog (slow task) and reports progress to the window.
Progress feedback while the tool reads source textures, resamples to the target resolution, packs channels, creates the output asset, and optionally rewires materials.
Progress feedback while the tool reads source textures, resamples to the target resolution, packs channels, creates the output asset, and optionally rewires materials.

6) Batch By Set

Use this tab when your textures follow a naming set, such as one group per material.

Content Dir: Folder to scan for texture sets.

Suffixes: Comma-separated suffixes used to detect matching textures.

Missing: Choose what happens when a set is incomplete: skip it, fill missing channels with black, or fill them with white.

Resolution: Choose whether packed textures use the highest or lowest input resolution.

Detect Sets: Scans the folder and lists detected sets.

Run Batch: Packs all detected sets using the default ORM workflow.

Export Report: Saves a JSON report with packed, skipped, and failed items.

WORKFLOW GUIDE interface

6) Batch By Folder

Use this tab to process every texture found inside a folder.

  • Source Dir: Folder containing the source textures.
  • Output Dir: Folder where generated textures will be saved.
  • Output Suffix: Suffix added to each generated texture name.
  • Preset: Shows the active packing preset used for the batch.
  • Preview: Lists the textures that will be processed and their output paths.
  • Run: Starts the batch process.
  • Cancel: Stops the current batch operation.

7) Texture Optimizer

Use this tab to reduce texture size and optionally rescale large textures.

  • Folder: Source folder to scan.
  • Compression Algorithm: Choose between TinyPNG-style quantization or JPEG lossy compression.
  • Colors / Quality: Adjust the selected compression method.
  • Rescaling: Enable this to downscale textures larger than the selected maximum size.
  • ORM Protection: Avoid lossy compression on ORM-style packed maps based on suffixes.
  • Output Suffix: Suffix used for optimized output assets.
  • Preview Scan: Scans and classifies textures before making changes.
  • Run Optimizer: Processes the scanned textures.
  • Status List: Shows whether each texture will be compressed, rescaled, skipped, or flagged as a potential ORM map.
WORKFLOW GUIDE interface