- Home /
Android Texture Compression with RGBA
Hi there! I have trouble getting compressed textures to Android builds of our game. PC is OK, iOS is OK, but as soon as I enable compression, all Android textures get terrible color banding. Having truecolor textures is a bit of a luxury we cannot afford.
Strange thing is, that the issue is gone as soon as I remove alpha channel. But we use it for specular maps, and having them separate would require us to modify all our textures and shaders. Is there any way around it?
P.S.: The 16-bit variant is banding as well. Only truecolor works fine.
Answer by giulio-pierucci · Feb 10, 2015 at 04:35 PM
You'd check texture kb size. Maybe that a smaller truecolor texture, in some case, are less lossy that a big 16 bit texture. Set general texture compression and override for specific case.
Check this page at bottom:
It doesn't seem to be related to kB size or Android build process. Actually, it's already terrible within Unity Editor, as soon as it has an Alpha channel. The 16-bit variant is exactly the same as the compressed one. Screenshots attached.
I don't understand. First image is original outside unity? The second is compressed?
Post original image, if is not the first
Both are from Unity Editor (inspector). First is truecolor, second is compressed. I will ask for permission to share the original file if required.
No, for now. First image are incorrect? It should be similar to original
If you noticed, the size in kb of compressed image are smaller than truecolor image, having same size.
You may reduce max size, in some case, and increase color depth; For other images you can make image bigger, but more compressed, depending on image use.
For a normal map, for example, you can use a 256x256 truecolor image (normal information more accurate)
First image is absolutely correct. The truecolor looks exactly as it should. But we need them compressed for memory concerns and AP$$anonymous$$/IPA size.
The other image shows the damage that 16-bit or Compressed mode do. The similar colors are spilled together, and ingame it looks truly terrible (as soon as you put it on mesh and use some lights, it looks like a GIF).
If we remove the Alpha channel, the compression goes well and the quality decrease is $$anonymous$$or (if any - no screenshot is provided, because it looks fine). However, the Alpha is being used for Specular maps, and we would like to find a way to go around this so we don't have to redo all our textures and shaders. Also, having separate files for specular maps might bring yet another memory and performance issue.