2013-08-05 26 views
0

我使用DDS(DXT5)至今为快速加载纹理数据。现在,我自read以来,OpenGL 4.3(和ES2)的压缩标准是KTX(ETC1/ETC2).I集成Khronos libktx SDK和工作台标记。 更新使用glCompressedTexSubImage2D 3000倍的结果质地:KTX与OpenGL的DDS图像

DDS: 1450 - 毫秒

KTX - 永远....

其实,跑步的只有300次更新KTX循环,总时间已经达到24秒!

现在我有2个问题:

  1. 这是KTX的预期速度?

  2. 如果第一个问题的答案是“是”,那么ETC的优点除了小于DDS的文件大小外,还有什么优势?

我使用OpenGL 4.3和Quadro4000 GPU。

+0

“*我读到,自从OpenGL 4.3(和ES2)压缩标准是KTX(ETC1/ETC2)。*”不要相信你读的所有东西。 *特别是*如果它在“OpenGL SDK”网站上。 KTX绝不是“标准”。 –

+1

另外,KTX只是一种文件格式。它可以保存S3TC压缩格式以及非压缩格式。 –

+0

S3TC是我正在使用的。与我使用的DDS DXT压缩纹理相比,其更新非常缓慢。 –

回答

0

我问这个问题上的Khronos KTX forum.Here是我从论坛版主得到了答案:

我已经被NVIDIA OpenGL驱动程序团队,在Quadro 4000 不支持ETC在告诉硬件,同时它支持DXTC。这个 意味着ETC压缩图像将被OpenGL 驱动程序在软件中解压,然后加载到GPU内存中,而DXTC压缩图像将被简单地加载到GPU内存中。我相信 是你观察到的性能差异的来源。

所以看来我的卡的硬件不支持ETC。

+2

KTX只是一个容器,特定文件中使用的实际像素格式可能会或可能不会被给定硬件支持。所以你真的不能说任何硬件支持或不KTX :) – rotoglup