I’m environment designer at Aquiris here in Brazil and since we started to use Unity3D in our games, there is something that bothers me. I can’t control the file size compressing my textures! It doesn’t matters if I save them in .jpg, .tga, .psd… the file size is always the same.
I know Unity3d has a good compression method, and is very possible to achieve small files. I belive this is the best method for a lossless compression. But many times I would like to use a Lossy compression (just like the ogg for audio, that is wonderful), which compress my textures in a half compared to Unity size.
Can anyone explain why Unity ignores any kind of Lossy compression for textures? And why DXT compression is affecting my file size? This should be just a video memory optimization…many times I want to disable it, to obtain better quality, even using more video memory, but my file size becomes bigger.
It’s not lossless by any means; DXT is very lossy, which is the only way to achieve 6:1 file compression. Lossless for graphics is typically only 25%-40%.
Yes, since the source file is never included in your published project. The only possibility for textures on graphics cards is uncompressed or DXT compressed; this is a hardware limitation, nothing to do with Unity. You choose what kind of compression to use with the import settings for each file.
Something that some games do is store graphics as .jpg files and then compress them to DXT on the fly, but this adds significantly to load times. Unity doesn’t currently support on-the-fly compression, but it’s possible to store .jpgs as separate files and use them as uncompressed textures in VRAM. The main problem with this is that you use up a lot more VRAM, plus it’s a lot harder to deal with compared to simply using drag’n’ drop in the Unity editor.
Hi Eric, I remember the loading time problem when working in another engines. Now I understand the big difference between the two systems.
Unfortunately the video cards evolution aren’t considering file sizes, the games are bigger and bigger instead.
Maybe Unity should bring this option for users in the future. DXT compression or on-the-fly conversion. Depending on the amount of textures your project have, users can choose which one worth while.