尽管不支持 S3TC,但 DXT 纹理仍然有效
DXT Texture working despite S3TC not being supported
题目涉及OpenGL ES 2.0
我有一个设备,当通过
查询扩展时
glGetString(GL_EXTENSIONS)
Returns 支持的扩展列表,none 其中 GL_EXT_texture_compression_s3tc
.
AFAIK,没有 GL_EXT_texture_compression_s3tc
不应该允许使用 DXT 压缩纹理。
但是,当在设备上使用 DXT 压缩纹理时,它们可以毫无问题地渲染。
纹理数据使用 glCompressedTexImage2D
提交。
尝试了 DXT1、DXT3 和 DXT5。
为什么有效?尽管似乎不支持压缩,但使用纹理压缩是否安全?
我认为,缺少对 GL_EXT_texture_compression_s3tc
的支持并不意味着您不能使用压缩格式。他们可能无论如何都会得到支持。
引自glCompressedTexImage2D doc page for ES2:
The texture image is decoded according to the extension specification
defining the specified internalformat
. OpenGL ES (...) provide a
mechanism to obtain symbolic constants for such formats provided by
extensions. The number of compressed texture formats supported can be
obtained by querying the value of GL_NUM_COMPRESSED_TEXTURE_FORMATS
.
The list of specific compressed texture formats supported can be
obtained by querying the value of GL_COMPRESSED_TEXTURE_FORMATS
.
请注意,GL_EXT_texture_compression_s3tc
没有任何内容。即使它们的'pseudo-standardized'(我的意思是 - 扩展)替代品未列为受支持,也可以实现对各种功能的支持。
您可能应该使用 glGetIntegerv()
查询那些常量(GL_NUM_COMPRESSED_TEXTURE_FORMATS
和 GL_COMPRESSED_TEXTURE_FORMATS
)以了解哪些压缩格式 实际上 受支持。
题目涉及OpenGL ES 2.0
我有一个设备,当通过
查询扩展时glGetString(GL_EXTENSIONS)
Returns 支持的扩展列表,none 其中 GL_EXT_texture_compression_s3tc
.
AFAIK,没有 GL_EXT_texture_compression_s3tc
不应该允许使用 DXT 压缩纹理。
但是,当在设备上使用 DXT 压缩纹理时,它们可以毫无问题地渲染。
纹理数据使用 glCompressedTexImage2D
提交。
尝试了 DXT1、DXT3 和 DXT5。
为什么有效?尽管似乎不支持压缩,但使用纹理压缩是否安全?
我认为,缺少对 GL_EXT_texture_compression_s3tc
的支持并不意味着您不能使用压缩格式。他们可能无论如何都会得到支持。
引自glCompressedTexImage2D doc page for ES2:
The texture image is decoded according to the extension specification defining the specified
internalformat
. OpenGL ES (...) provide a mechanism to obtain symbolic constants for such formats provided by extensions. The number of compressed texture formats supported can be obtained by querying the value ofGL_NUM_COMPRESSED_TEXTURE_FORMATS
. The list of specific compressed texture formats supported can be obtained by querying the value ofGL_COMPRESSED_TEXTURE_FORMATS
.
请注意,GL_EXT_texture_compression_s3tc
没有任何内容。即使它们的'pseudo-standardized'(我的意思是 - 扩展)替代品未列为受支持,也可以实现对各种功能的支持。
您可能应该使用 glGetIntegerv()
查询那些常量(GL_NUM_COMPRESSED_TEXTURE_FORMATS
和 GL_COMPRESSED_TEXTURE_FORMATS
)以了解哪些压缩格式 实际上 受支持。