Skip to content

Texture Channel Packer

Module: Tech · Category: TextureGenerators · Tool ID: TextureChannelPacker

Pack 4 source textures’ channels into a single RGBA output. Each output channel (R / G / B / A) gets its own source texture + source channel selection (R/G/B/A/White/Black) + invert toggle + level remap. Includes packing presets (ORM, MRA, RMA, etc.), 8-bit or 16-bit output, batch folder mode, preset save/load to JSON, and auto-detect for <basename>_Roughness / _Metallic / _AO texture sets.

Screenshot 01 — Hero shot — Packer with 4 channel slots filled in for ORM packing, preview showing the packed texture, batch mode panel visible.


  • ORM packing — Occlusion / Roughness / Metallic in one RGB texture for memory + sample-count savings
  • Custom mask packing — packing 4 mask textures into a single RGBA
  • Preparing texture sets for a parent material that expects packed inputs
  • Batch processing a folder of texture sets

  1. Open the EQLabs Hub and search for Channel Packer (or browse to Tech → TextureGenerators)
  2. Click the tool card

For each of R / G / B / A output channels:

FieldWhat it does
Source Texture pickerThe texture to sample from
Source Channel comboRed / Green / Blue / Alpha / White / Black
Invert toggle1 - value
Level Min / MaxRemap the source range
FieldWhat it doesDefault
Output ResolutionFinal texture size1024
Bit Depth8 / 168
Save Asset PathOutput asset path/Game/Textures/T_Generated_PackedChannels

Built-in presets covering common conventions: ORM (Occlusion/Roughness/Metallic in RGB), MRA, RMA, etc. Click a preset to fill the channel slots automatically.

Live preview with isolation modes: RGBA / Solo R / Solo G / Solo B / Solo A.

FieldWhat it does
Batch Folder PathFolder with texture sets to process
Batch Output SuffixSuffix appended to output filenames
Run BatchWalks the folder, packs every texture set

When the source for one slot is set, Auto-Detect Texture Set scans the same folder for <basename>_Roughness, _Metallic, _AO, etc., and auto-fills the other slots.

Configure your packing setup, click Save Preset with a name. Reload via Load Preset. JSON files persist across sessions.

Screenshot 02 — Auto-detect filling slots — Auto-Detect Texture Set just ran, all 4 slots populated with matching _AO, _Rough, _Metal textures.


  1. Drop the AO texture into channel R, source channel R
  2. Drop the Roughness texture into channel G, source channel R
  3. Drop the Metallic texture into channel B, source channel R
  4. Channel A: Source = Black (or set as needed)
  5. Or: pick ORM preset to fill these in one click
  6. Click Pack + Save as UE Asset
  1. Set up the channel slots (or load a preset)
  2. Set Batch Folder Path
  3. Click Run Batch — every detected texture set gets packed and saved

Settings + presets persist to [Project]/Saved/EQLabs/.


  • UTexture2D asset — via Save as UE Asset
  • PNG file — via Export
  • Bit depth — 8-bit (BGRA8) or 16-bit (HDR-friendly)
  • Batch run writes one packed texture per detected source set

  • ORM is the de-facto PBR packing convention — Occlusion / Roughness / Metallic in RGB, A free for any mask
  • Bit depth matters for normal maps — for normal-channel packing, use 16-bit to avoid quantization artifacts
  • Auto-detect uses naming conventions — assumes _Roughness, _Rough, _R; _Metallic, _Metal, _M; etc.
  • Solo Preview modes are useful for verifying each channel ended up where you intended


Report an issue with this tool

Opens our feedback form in a new tab with the tool name pre-filled.