Must have
- import/export DDS
- automatic mipmap generation
- basic texture compression (S3TC aka DXT1/3/5 aka BC1/2/3, maybe libsquish (MIT)?)
- there is an official Microsoft's library for DDS support DirectXTex (MIT)
Should have
- authoring/import/export of cubemaps (6 separate sides)
- authoring/import/export of 3D textures (essentially 2D layers with interpolation, 3rd dimension is often space or time)
- authoring/import/export of array textures (array of independent same-sized 2D textures)
- better texture compression
- mobile compression formats:
- ETC2 (not sure if suitable open implementations are available)
- desktop compression formats:
- BC4/5 (aka , 1- and 2-channel images, using the alpha encoding from BC3)
- BC7 (aka BPTC, much better quality RGB compression, suggested bc7enc16.c (MIT))
- mobile compression formats:
Could have
- mobile compression formats:
- PVRTC2 (PoverVR-specific so less common, implementations ???)
- ASTC (best compression ratio, legal and technical accessibility ???)
- desktop compression formats:
- BC6h (HDR! half-float format)
- cubemap filtering (for image-based shading, see github.com/dariomanesku/cmft)
- conversion between environment map representations (see image in cmft readme)
Stretch goals
- normal/bump/occlusion map generation
- support for KTX file formal https://www.khronos.org/opengles/sdk/tools/KTX/file_format_spec/
- basic preview for material textures based on the PBRT shading model used in glTF