Difference between revisions of "Community Roadmap - Compressed Texture Support"

From Horde3D Wiki
Jump to: navigation, search
(New page: === Goals === Load textures in a variety of compressed formats: DXT/S3TC, PVRTC, ETC for now. === OpenGL tokens === <pre>GL_EXT_texture_compression_s3tc GL_COMPRESSED_RGB_S3TC_DXT1_EXT G...)
 
m
 
(2 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
=== Goals ===
 
=== Goals ===
 
Load textures in a variety of compressed formats: DXT/S3TC, PVRTC, ETC for now.
 
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 ===
 
=== OpenGL tokens ===
 
<pre>GL_EXT_texture_compression_s3tc
 
<pre>GL_EXT_texture_compression_s3tc
Line 21: Line 23:
  
 
GL_ETC1_RGB8_OES</pre>
 
GL_ETC1_RGB8_OES</pre>
 +
=== 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:''' [http://horde3d.org/forums/viewtopic.php?f=8&t=389 Texture Compression thread]

Latest revision as of 01:39, 29 March 2009

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