Texture channel packing tool allows to pack channels directly in Unreal Editor, 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.
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.
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!
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.
Hi,
Could you explain the unpacking process in more detail? I see your response above but I’m not following the instructions you wrote. I need to unpack an RGB packed texture in 3 separate texture files.
Thanks!
Hi. You need to create 3 output textures by clicking on “New output texture” button, configure them with the name and texture parameters you want. Then first output will have Red,Red,Red in all 3 channels, second will have Blue, Blue, Blue and third Green, Green, Green
Would it be possible to have combined RGB and RGBA as an input for channel as additional options to the current single channels?. So I can pack color RGB PolyGroup ID texture into single channel to be used as multiplier for color variation for my shader?. Converting that input ID texture into greyscale does nothing because Unreals formats are always based on either R or A, they don’t take RGB as greyscale.
Hi, can you explain how do you want to combine the channels? Something like R x G x B → R ? Right now it’s not possible but we can see if we can add it
Yeah, just grab RGB and dot with vec3(0.2126, 0.7152, 0.0722) will give greyscale. Actually now AI suggested R+G+B / 3 might be more useful for generated masks because even when color that is what one might plug in usually (like that mentioned poly ID). Dot is for visually pleasing, but this is mostly for masks anyway so linear generated stuff.
This will internally allow you to grab one of combined channels and you can list that method on the input list as RGB. That way I can grab color texture like poly ID and plug it into for example G.
I cannot do that with just file compression setting because all Unreal textures only grab one channel, either R or A without combining.
TLDR: Yes I want combined R+G+B turned into greyscale so I can plug it into one of the channels because sometimes textures I want to use are originally generated in color.