This example shows how to make a high-quality 16-bit color texture in Unity.
Unity supports 16-bit color as a texture color format, however it introduces significant color banding.
(Left: original image, Right: 16-bit converted image)
It’s mainly because of lack of dither -- Unity simply quantizes the image to 16-bit without any fancy algorithms. It can be improved by dithering the image before quantization. This example does it in the AssetPostProcessor script.
(Left: original image, Right: 16-bit image with dithering)
Add “Dither” to the end of the filename, or import an image with the “Dither” suffix. The AssetPostProcessor script automatically detects and convert it. You can change the behavior by modifying the script. See the script for further details.
The script files in this repository are in the public domain. You can copy and paste it without permission or attribution.