Texture Channel Packing Plugin [RELEASED]

Texture Channel Packer tool allows to pack channels directly in Unreal, without using other software.

Texture channel packing is a technique used to store multiple images in a single texture. This is done by assigning each image to a different channel of the texture. For example you can save the base color in R,G,B channels and roughness in Alpha, or store the normal map in R,G, roughness in B and specular in Alpha channel. Texture channel packing is commonly used in Unreal.

Video | Documentation

Example Use Cases:

  • Pack: combine textures in 1 texture asset (example: AO, Roughness, Metallic textures->ORM)
  • Repack: change the order of channels. (example: ORM → RMO)
  • Unpack: extract channels into separate assets (ORM → AO, Roughness, Metallic texture assets)
  • and other operations that rely on copying of texture channels

Features:

  • Extract channels from any texture2d asset and pack them into a new texture
  • Define output texture settings: compression, mip maps, srgb, filtering, etc.
  • Can create multiple textures in one go
  • Create presets for your packing scenarios
  • Input patterns allow to drag and drop multiple input textures at once
  • BP API to read and write texture channels
2 Likes

This looks awesome! Something I’ve wanted to make myself for some time. One question: Can you use this functionality via Utility BPs/Python for automated processing? Thanks in advance and great work!

1 Like

Thank you

The core functions, reading and writing textures, are in C++ and exposed to BPs and also should be visible from Python I suppose. The tool itself, UI and main logic is implemented as an editor utility BP. So I think it’s possible already to modify that to do some automatic processing. But because it’s all very new it’s also possible we will change the API.

We are actually already started looking how to implement a batch processing.

Do you have some example use cases of automated processing you would like to see?

Hi, I wanted to strip the alpha channel from existing texture to make it smaller. Dropped same texture on 3 rgb channels, left alpha empty, compression left on default. result still seems to have the alpha channel?

Hi, there are 2 alphas: alpha in the source texture and alpha in the compressed texture. To reduce the size of the texture in game you have to check “compress without alpha” checkbox, it will be smaller. The “source alpha detected” basically tests that your alpha channel is white. If it’s white then source alpha detected = false, otherwise it’s true. But it doesn’t really changes the size of the asset afaik.