- Home /
Generalise Texture Compression for Android Phones
Hello folks,
I have a question about texture compression for the Android platform. Since there is no standard hardware for the Android phone I am not sure what the best approach is for compressing textures. There are lots of them available but I wanted to know is there anything that will help us to use say only one type of compression for almost all the devices? however I know its quite difficult or even not possible! I'm not sure whether DXT, PVRTC, ATC, ETC1, ETC2 one of them will work on all android phones.? also physical size is concerned because total size goes over 75 MB, and if some atlases compressed by using PVRTC it goes to 43 MB, but hits performance, it increases levels loading time :( . Any help will be appreciated :)
hello, my doubt is that, what happen if i choose none in the texture compression in unity build settings in android.what should i generally use when i am publishing in google play.
thanks in advance!!!!
Answer by DarkPixel · Oct 09, 2013 at 12:59 PM
ECT1 is guarantee to work on any device. The main problem is that it doesn't not supported alpha channel. So you need to create an Alpha8 texture if you have alpha in your texture.
You can choose other format, but you need to upload multiple APK on the Google Play Store.
ETC also doesn't do non square textures on Android.
Texture support on Android depends on the GPU in the device.
ETC as Recommended Texture Compression
Although Unity Android does support DXT/PVRTC/ATC textures, Unity will decompress the textures into RGB(A) format at runtime if those compression methods are not supported by the particular device in use. This could have an impact on the GPU rendering speed and it is recommended to use the ETC format ins$$anonymous$$d. ETC is the de facto standard compression format on Android, and should be supported on all post 2.0 devices. However, ETC does not support an alpha channel and RGBA 16-bit will sometimes be the best trade-off between size, quality and rendering speed where alpha is required.
It is also possible to create separate android distribution archives (.apk) for each of the DXT/PVRTC/ATC formats, and let the Android $$anonymous$$arket's filtering system select the correct archives for different devices (see Publishing Builds for Android).
Further Reading - GPU These are the popular mobile architectures
for me DXT (with alpha) looks good... it also reduces the size of game...
I don't see game size as a limitation. You are allowed 2GB on the Play store.
On Google Play the maximum AP$$anonymous$$ size you can upload is 50mo, but you can download "expension AP$$anonymous$$" after that. I'm not sure how Unity handle that.
DXT is a really good format but I'm not sure the percentage of the device that supported it.
Personnally, for the Live Wallpaper I release on Android (not with Unity), I used ETC1 texture with an alpha texture 50% of the width/height in grayscale format (8bpp)
Answer by liju · Nov 26, 2015 at 11:42 AM
Unity Android Texture Compression
ETC as Recommended Texture Compression, not support alpha channels. In DXT format Alpha channel is very good
In My game using ETC2
*this information based on my game , may vary for other games
File Size(KB) Format Supporting Devices Alpha Channels
21843 ASTC 1242 Good
22759 ATC 3144 Good
22860 DXT 992 Very Good
23021 ETC2 10271 Average
31598 Don’t Override 10271 Poor
31598 ETC1 10248 Bad
35933 PVRTC 2473 Bad
i made this chart from my game . i build games in all format and try to upload in google play store , that time i got this information
i only asked because your #s are low for atc/dxt/pvrtc (the three major gpus) and your etc2 number is too high...it's as high as "don't override" and higher than etc1...no way do all android devices support etc2...must be error in your manifest...