OpenGL中的KTX与DDS图像



到目前为止,我使用DDS(DXT5)来快速加载纹理数据。现在,我读到,自从OpenGL 4.3(以及ES2)以来,压缩的标准是KTX(ETC1/ETC2)。我集成了Khronos libktx SDK和Benchmark。使用glCompressedTexSubImage2D更新纹理3000次,结果为:

DDS:1450毫秒

KTX-永远。。。。

实际上,运行一个只更新KTX 300次的循环,总时间已经达到24秒!

现在我有两个问题:

  1. 这是KTX的预期速度吗?

  2. 如果第一个问题的答案是"是",那么除了文件大小比DDS小之外,ETC的优势是什么?

我使用OpenGL 4.3和Quadro4000 GPU。

我在Khronos KTX论坛上问了这个问题。以下是我从论坛主持人那里得到的答案:

NVIDIA OpenGL驱动程序团队告诉我Quadro 4000硬件上不支持ETC,但支持DXTC。这意味着ETC压缩的图像将由OpenGL解压缩然后将软件中的驱动程序加载到GPU内存中,同时DXTC压缩的图像将简单地加载到GPU内存中。我相信这就是你的表现差异的来源观察。

所以我的卡的硬件似乎不支持ETC。

最新更新