Download

16bit RGB imports too bright, 8bit RGB doesn't import alpha.

Hi, I seem to have stumbled upon a small but repeatedly annoying issue with importing textures.

I tend to use alpha maps with my textures, when I import them from photoshop as a RGB/8bit, UE4 for doesn’t seem to import the alpha channel.
However, if I use 16bit RGB, it does. However, for some reason the texture imports super bright and I have to either manually re-adjust them in photoshop or UE (in either case they don’t match, and I can be hard to get the results I want based on my levels in PS).

Am I doing something wrong?

Not all texture compression settings support an alpha channel, by default I believe UE4 imports textures as DXT5 which has no Alpha. If you want an Alpha channel you will probably want to use BC7.

BC7 is twice the size of DXT5, so normally it is better to just make another texture and put the alpha mask in one of the color channels (set compression to “masks”). Then you can store additional masks in the remaining two channels.

I don’t recommend ever using a 16b RGB texture unless you are storing non-color data in it.

Importing straight to default settings won’t work, depending on what the texture is used for you’ll need to change the texture compression settings. If it’s a 8-bit heightmap or something, switch it to a VectorDisplacementMap and uncheck sRGB.

If it’s 16-bit, import as a HDR. You may need to uncheck sRGB to store the texture in linear colour space if that’s what you want - but note that any texture samplers using it will need to be updated to sample as Linear Color not Color.

Bear in mind, these formats are considerably more expensive.

UE uses DXT1 for textures without Alpha, and DXT5 for textures with alpha assuming they are just using default compression. It’ll choose automatically if you import a texture with alpha.

BC7 does support alphas (and it has the same footprint as DXT5 IIRC, just uses a different compression mode). To actually use BC7 you need to disable Shader Model 4 in project settings because it’s dependent on newer features (Editor->Project Settings->Platforms->Windows->Targeted RHIs).

Thanks! I was finally able to import RGB/8 as DXT5 by importing the PSD as a new file and overriding settings, instead of reimporting. I guess UE4 just didn’t recognize the alpha when a previous version of the same file didn’t have it in the past.
It has now retained my alpha maps, and lowered my texture size by roughly 1/5th! I assume this will have a big effect on texture load times.

I have however found that I had to do this to other textures as well in the past, is there an easy way to sort/filter out textures of a specific format? So that I can fix the issue with the previous assets as well.
I found that my RGB/16 images imported as R8G8B8A8.

Good to know! Thank you for the clarification