Texture Format option explained?

Firstly, forgive me, I know I’ve seen these explained somewhere but I cannot find a source anymore.

I THINK they mean the following:

Color - 32-bit ARGB pixel format with alpha, using 8 bits per channel.
DXTCompressed - DXT compression (https://en.wikipedia.org/wiki/S3_Texture_Compression)
NoChange - As the texture is imported. So if its a PNG, it will export as a PNG and then load uncompressed into memory when the game runs? 32 bit? (This assumption seems wrong after playing around with it. Not sure what this setting is for)
Color16bit - Bgra4444 16-bit BGRA pixel format with 4 bits for each channel.
ETC1 - Ericcson compression (https://en.wikipedia.org/wiki/Ericsson_Texture_Compression)
PVR - PVRTC (https://en.wikipedia.org/wiki/PVRTC)
ATC - ATSC (I think??) (https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression)
Compressed - No idea. I think I read somewhere it was platform dependent

Secondly, is there any side effects to mixing compression types?

Lastly, it would be great to add these definitions to the official documentation. If I compile them, can I add them to http://www.monogame.net/documentation?

Compressed is just one of the other methods you listed which best suits current platform. So I guess the idea is, if you have no clue what to use just choose Compressed and it will work fine.

Another thing I found out, is if you want to have mipmapping on textures set mipmapping on not only on the actual textures but also on the corresponding model in the pipeline tool. And if these won’t work better manually adjust the resolution of width/height to powers of two :slight_smile:

There has been discussion to only allow Color and Compressed as options. Compressed compresses the image to a compressed format that can natively be used on the target platform without decompressing. E.g. DXT for desktop, ETC for Android. Off the top of my head I don’t think decompression of these formats at runtime is supported, so they can’t be loaded on other platforms. I think NoChange uses color if the format can’t be used directly (i.e. is not an output option), but keeps the input compressed if it’s e.g. DXT.

Thanks for the info. Simplifying the options makes alot of sense, except wouldn’t 16bit still be desirable to keep around?