When you extract textures, is common for the files to appear in PNG format, yet almost everyone uploads texture packs in DDS format, why?
Compression:
Store: if you plan on editing the textures, you should always store them in PNG format.
Edit: always in PNG, never in DDS.
Share: you should share your packs in DDS BC7 as long as it's supported by the emulator, and BC3 too if you want Android users to enjoy the textures.
Compression:
- PNG is a format with lossless compression, meaning that it retains all detail!
- DDS is a format that was made to store textures, compression level varies depending on the format.
DDS has these formats: BC1, BC2, BC3, BC4, BC5, BC7.
- PNG is perfect for editing, since it will always retain the same ammount of detail, no matter how many changes you make.
- DDS has many uses, but you sould never edit these files, since every time you hit save, even if no changes were made, the image will be compressed. Usage varies across formats, for example:
BC3: alpha transparency fidelity and works on Android emulators
BC4: best for grayscale textures
BC7: best color fidelity and image quality (not supported on Android)
- PNG file size varies with the ammount of detail that the image has, so in some instances a PNG image may have a smaller filer size than a DDS one.
- DDS has a fixed size and it depends on the image size and if you decide to apply mipmaps or not.
For example: 1024x1024=1mb 2048x2048=4mb 4096x4096=16mb
- PNG requires to be decoded by both the CPU and RAM before sending it to the GPU, so it's slower.
- DDS is loaded directly from the GPU memory, so it loads faster and doesn't use CPU and RAM.
Store: if you plan on editing the textures, you should always store them in PNG format.
Edit: always in PNG, never in DDS.
Share: you should share your packs in DDS BC7 as long as it's supported by the emulator, and BC3 too if you want Android users to enjoy the textures.