本主题涉及OpenGL ES 2.0。
我有一个设备,当被查询到扩展时
glGetString(GL_EXTENSIONS)返回支持的扩展列表,其中没有一个是GL_EXT_texture_compression_s3tc。
AFAIK,没有GL_EXT_texture_compression_s3tc不应该允许使用DXT压缩纹理。
但是,当在设备上使用DXT压缩纹理时,它们不会出现任何问题。
纹理数据是使用glCompressedTexImage2D实现的。
尝试DXT1,DXT3和DXT5。
为什么会起作用?虽然不支持纹理压缩,但使用纹理压缩安全吗?
发布于 2016-03-24 19:14:31
我认为,缺少对GL_EXT_texture_compression_s3tc的支持并不意味着您不能使用压缩格式。无论如何,他们都可能得到支持。
来自glCompressedTexImage2D ES2文档页面的报价
根据定义指定
internalformat的扩展规范对纹理图像进行解码。OpenGL ES (.)提供一种为扩展提供的此类格式获取符号常量的机制。支持的压缩纹理格式的数量可以通过查询GL_NUM_COMPRESSED_TEXTURE_FORMATS**.的值来获得。支持的特定压缩纹理格式的列表可以通过查询**GL_COMPRESSED_TEXTURE_FORMATS**.**的值来获得
请注意,GL_EXT_texture_compression_s3tc没有任何内容。可以实现对各种功能的支持,即使它们的“伪标准化”(我指的是扩展的)替代品没有列出支持。
您可能应该使用GL_NUM_COMPRESSED_TEXTURE_FORMATS和GL_COMPRESSED_TEXTURE_FORMATS查询这些常量,以了解哪些压缩格式实际上是受支持的。
https://stackoverflow.com/questions/36207673
复制相似问题