到目前为止,我一直使用 DDS (DXT5) 来快速加载纹理数据。现在,我读到自 OpenGL 4.3(和 ES2)以来,压缩标准是 KTX(ETC1/ETC2)。我集成了 Khronos libktx SDK 并进行了基准测试。使用glCompressedTexSubImage2D更新纹理 3000 次,结果为:
DDS:1450 - 毫秒
KTX - 永远....
实际上,只运行了300次更新KTX的循环,总时间已经达到了24秒!
现在我有两个问题:
这是KTX的预期速度吗?
如果第一个问题的答案是“是”,那么除了文件大小比 DDS 小之外,ETC 的优势是什么?
我使用带有 Quadro4000 GPU 的 OpenGL 4.3。