- Home /
Problem with Texture Compression
Hello guys. I am making a quiz game for iOS and Android and I'm facing a problem with texture compression. In this game I will show an image and the player has to guess where the image is from. The problem is I have to pack a lot of images in the app which makes the apk size way higher than I want it. I started using compression to make the image sizes smaller but , as the image will be shown very big at the screen, the compression makes the images look very bad in bigger devices such as tablets. At the moment I'm trying to use a 512x512 pixels image with ETC compression and the images are about 128 kbs in size. I am using about 400 different images for the different levels of the quiz so every kb I can save in their size is very important. At the moment about 40 mbs of the apk alone is just for the images. Do you guys have any suggestion on how to work with a lot of images in Unity? What compression mode could I use to make the image not pixelated but still relatively small in size? Any tips on how to handle many different images on mobiles? Thanks in advance.
I can't really think of any other way to compress it more without it looking bad. It's just the way it is. The only thing I could possibly think of is dynamically downloading images on the fly but I believe you may need Unity Pro for that.
Answer by gfoot · Apr 22, 2014 at 07:47 PM
Do the images have large areas of flat colours? Are they weird shapes? You might be able to split each image into many smaller tiles, and find that many of the tiles are empty, or are filled with just one colour. Then you don't need to provide high-resolution images for those tiles. You could automate the process of cutting up the images.
Alternatively, maybe you can look at performing PNG or JPEG decompression on the fly, so you can use these far more compressible image formats. If your images are very simple, (e.g. flat colour vector graphics), even simple RLE encoding could reduce the size a lot without the complexity of finding or implementing a PNG or JPEG decompressor.
Also if they are vector graphics then you may be able to re-render them on the fly from the vector sources, which will let you match whatever the device's native resolution is.
Your answer
Follow this Question
Related Questions
Problem with GetPixel from a resized texture in 5.4 0 Answers
One atlas per scene or one (larger) atlas across multiple scenes? 0 Answers
Material texture artefact on mobile platforms 1 Answer
Signed Float Textures 0 Answers
Perfomance for Mobile 1 Answer