When textures are loaded as resources, the best available format is now
picked by default. That means that if your source image is 16-bit RGB,
you will get a 16-bit RGB texture (the alpha channel is added only if
necessary). However, grayscale images currently get expanded into RGB(A)
by the loaders automatically, so you will never get less than 3 channels
by default. This is good, because you most often expect grayscale images
to stay gray, and not red.
This behavior can be overriden with the new 'format' key in .tex files.
For example, if you only care about one channel in a gray image, you can
do this to save some VRAM:
format = R16
The following is equivalent:
format = R16U
And so is this:
format = r 16 uint
The general syntax is:
format = <channels><depth>[datatype]
Where:
* Channels is one of: R, RG, RGB, RGBA;
* Depth is one of: 8, 16, 32;
* Datatype is one of: uint (or just u), float (or just f)
All fields are case-insensitive and may be separated by whitespace.
Note that the rendering backend may not support all of these formats,
and fallback to an inferior or a redundant one. The gl33 backend should
support all of them. The gles30 backend only supports 8-bit uint
textures for now.