PNG imports as BGRA8 instead of DXT5

I’m importing PNG images to then use as sprites in my game. Up until recently, I’ve had all of them be 1880x3640 pixels, but since those take up 6.6MB of RAM each, I’ve decided to now crop the PNGs and remove all empty space around them. However, I’m running into a problem with the cropped PNGs: Instead of DXT5, Unreal assigns the B8G8R8A8 format to them, which causes the RAM size to skyrocket past 17 MB each instead of the sub-3 I was hoping to achieve!
I imported both versions with completely default settings and I don’t see a way to change the texture format.
How can I solve the problem?

2 Likes

Not sure why this happens. But you can change the compression setting on the asset back to DXT5. There is a bulk edit utility to perform the operation en masse if needed.

I don’t see a way to change the
texture format

Look for Compression Setting dropdown.

It’s still set to Default (DXT1/5, BC1/3 on DX11).
No matter what I change the Compression Settings to, it stays as B8G8R8A8. The only exception is Grayscale, which sets it to G8 (but only if I disable sRGB).

Turns out that in order to enable compression settings other than B8G8R8A8, the texture’s width and height must both be a multiple of 4, although they don’t need to be the same. This doesn’t seem to be documented anywhere though.
So for any unfortunate souls who find their way through the internet to this question: Make sure your textures’ dimensions are multiples of 4!

2 Likes