2013-08-05 25 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