Community Roadmap - Compressed Texture Support

From Horde3D Wiki
Revision as of 21:18, 1 September 2008 by Ddd (talk | contribs) (Discussion)
Jump to: navigation, search

Goals

Load textures in a variety of compressed formats: DXT/S3TC, PVRTC, ETC for now.

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