Community Roadmap - Compressed Texture Support
Goals
Load textures in a variety of compressed formats: DXT/S3TC, PVRTC, ETC for now.
- Note: Horde3D v1.0 Beta3 has introduced DDS support into Horde3D.
OpenGL tokens
GL_EXT_texture_compression_s3tc GL_COMPRESSED_RGB_S3TC_DXT1_EXT GL_COMPRESSED_RGBA_S3TC_DXT1_EXT GL_COMPRESSED_RGBA_S3TC_DXT3_EXT GL_COMPRESSED_RGBA_S3TC_DXT5_EXT GL_IMG_texture_compression_pvrtc GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG GL_OES_compressed_ETC1_RGB8_texture GL_ETC1_RGB8_OES
Discussion
I was initially going to add support for compressed textures directly to the existing texture loading functions, but given the differences in the way compressed textures are handled, this is not feasible. I plan to add a set of functions dedicated to loading compressed textures directly.
However, there are a few points in need of discussion:
Fallbacks: Although S3TC is present on all recent desktop hardware, PVRTC and ETC are specific to their respective hardware vendors, neither of which support S3TC. Do we provide a fallback which decompresses these formats in software if they are not supported by the current hardware? Do we provide a way for the application to query the supported compression formats at runtime?
Containers: Several of these formats have multiple containers, and some containers can contain multiple compression schemes. Which format/container combination do we want to support?
>> Follow discussion on forum: Texture Compression thread