DXT纹理工作,尽管不支持S3TC
DXT Texture working despite S3TC not being supported
本主题涉及OpenGL ES 2.0。
我有一个设备,当通过在扩展上查询时
glGetString(GL_EXTENSIONS)
返回支持的扩展名列表,其中没有一个是GL_EXT_texture_compression_s3tc
。
AFAIK,没有GL_EXT_texture_compression_s3tc
不应该允许使用DXT压缩纹理。
但是,当在设备上使用DXT压缩纹理时,它们的渲染没有任何问题。
使用glCompressedTexImage2D
提交纹理数据。
尝试用于DXT1、DXT3和DXT5。
为什么它有效?虽然似乎不支持纹理压缩,但使用纹理压缩是否安全?
我认为,缺少对GL_EXT_texture_compression_s3tc
的支持并不意味着不能使用压缩格式。无论如何,它们都可能得到支持。
ES2:的glCompressedTexImage2D文档页报价
根据扩展规范对纹理图像进行解码定义指定的CCD_ 5。OpenGL ES(…)提供了获取此类格式的符号常量的机制由扩展支持的压缩纹理格式的数量可以是通过查询CCD_ 6的值获得。支持的特定压缩纹理格式列表可以是通过查询CCD_ 7的值获得
注意,GL_EXT_texture_compression_s3tc
没有任何内容。对各种功能的支持可以实现,即使它们的"伪标准化"(我的意思是-扩展)替代品没有被列为支持。
您可能应该使用glGetIntegerv()
查询这些常量(GL_NUM_COMPRESSED_TEXTURE_FORMATS
和GL_COMPRESSED_TEXTURE_FORMATS
),以了解实际支持哪些压缩格式。
相关文章:
- 为什么istream不支持右值提取
- 错误:(-210:不支持的格式或格式组合)功能'create'中的硬件视频解码器不支持视频源
- Casablanca/cpprestsdk listener.support接受函数,但不支持方法
- 为什么C++不支持对未初始化变量进行智能分析?
- 在 c++ 中连接字符串和整数,以便在 C++ 11 不支持计算机的情况下读取多个文件
- 在 Ubuntu 18.04 上编译 GLSL 着色器时"不支持 GLSL 3.30"?
- 为什么联机C++ IDE 不支持"graphics.h"头文件?
- Clang编译器不支持aarch64-apple-darwin上的-fxray-instrument
- 为什么我的 clang 格式不支持 PPDirectiveIndentStyle 选项?
- 为什么某些 STL 容器(堆栈、队列、优先级队列)不支持迭代器?
- 为什么不支持 Xcode 1.5?
- C++20 从括号中的值列表初始化聚合,不支持内部数组
- 为什么结构化绑定不支持可变数组?
- 您选择的 CPU 不支持 x86-64 指令集
- 将数据发送到多个客户端 UDP 时不支持地址族
- 缺少类型说明符 - 假定为 int.注意 c++ 不支持 default-int
- 瓦尔格林德"不支持arch_prctl选项"
- 错误:C4430:缺少类型说明符-假定为int.注意:C++不支持default-int
- 不支持 GLSL 330 内核
- DXT纹理工作,尽管不支持S3TC