当我尝试在我的电脑中看到OpenGL Extensions时,它会在其他许多扩展中显示以下两个扩展名
GL_EXT_texture_compression_dxt1
GL_EXT_texture_compression_s3tc
我在互联网上查了一下它说D3n调用了s3tc。这意味着s3tc和DXT基本相同的算法: http://en.wikipedia.org/wiki/S3_Texture_Compression
我有一系列问题:
然后,为什么我的电脑显示具有两个不同项目的相同压缩算法。
我还看到以下扩展名
GL_ANGLE_texture_compression_dxt5
据我所知,它提供了dxt5压缩,但为什么它以GL_ANGLE开头,它与GL_EXT前缀有何不同?
答案 0 :(得分:1)
GL_EXT_texture_compression_s3tc支持DTX1,DTX3和DTX5压缩纹理。根据我的阅读,几乎每个现代GPU都支持它。
从阅读规范来看,GL_EXT_texture_compression_dxt1是GL_EXT_texture_compression_s3tc的精简版,主要针对OpenGL ES;它只支持DTX1,不支持为您压缩纹理。由于它是先前扩展的子集,因此驱动程序可以报告它支持两种扩展。
除了ARB和EXT前缀之外,还有一些特定于供应商的扩展,它们以供应商名称为前缀(例如GL_NV_texture_barrier
和GL_AMD_pinned_memory
)。 GL_ANGLE显然适用于ANGLE project特有的扩展名。根据它的规范,GL_ANGLE_texture_compression_dxt5是支持DTX5的GL_EXT_texture_compression_dxt1的扩展。