Using Unity 2021.3.18f1
If I change a RGB texture from “Texture Shape” of 2D to 2D Array Unity adds a alpha channel making it a RGBA texture and double the file size. Even if I change the “Alpha Source” to none this empty new alpha channel will not go away.
Is there a reason for this? I’d like to use arrays instead of atlases, but not if the result is wasted memory from empty forced alpha channels. Is there a way around this that I’m maybe missing?
Many thanks in advance for any help.
What platform are we talking here?
If we are talking DirectX, there is not really a 24 bit format: DXGI_FORMAT (dxgiformat.h) - Win32 apps | Microsoft Learn
Unity has a R8G8B8 format, but if you are using the DirectX backend, it most likely gets mapped to R8G8B8A8 anyways. You can take a RenderDoc capture to see what you actually get.
It is also possible, that the 2D format is using texture compression (DXT, BC) but the 2D texture array isn’t. Either way, you can find out with RenderDoc.
Looking at the docs, 2D TextureArray is 4 channels RGBW, where W is the frame index number for the array