【发布时间】:2016-11-19 22:34:03
【问题描述】:
到目前为止,我一直使用 DDS (DXT5) 来快速加载纹理数据。现在,我 read 从 OpenGL 4.3(和 ES2)开始,压缩标准是 KTX(ETC1/ETC2)。我集成了 Khronos libktx SDK和基准。 使用 glCompressedTexSubImage2D 更新纹理 3000 次,结果为:
DDS: 1450 - 毫秒
KTX - 永远....
其实循环只运行了300次更新KTX,总时间已经达到24秒!
现在我有两个问题:
这是KTX的预期速度吗?
如果第一个问题的答案是“是”,那么除了文件大小比 DDS 小之外,ETC 的优势是什么?
我使用 OpenGL 4.3 和 Quadro4000 GPU。
【问题讨论】:
-
"我读到自 OpenGL 4.3(以及 ES2)以来,压缩标准是 KTX(ETC1/ETC2)。“不要相信你读到的一切。 特别是如果它在“OpenGL SDK”网站上。 KTX 绝不是“标准”。
-
另外,KTX 只是一种文件格式。它可以很好地保存 S3TC 压缩格式以及未压缩格式。
-
S3TC 是我正在使用的。与我使用的 DDS DXT 压缩纹理相比,它的更新速度非常慢。
-
如果文件包含相同的数据,然后发布一些代码。显然,问题在于用于获取数据的代码,而不是上传数据的代码(因为它们是一样的,对吧?)。
-
好吧,代码来自Khronos ktxlib...无论如何都会发布它
标签: opengl dds-format