2017-01-03 67 views
-1

我使用紋理將大量數據傳遞給我的頂點着色器,並且它可以工作(要點是將每個rgba像素轉換爲32位浮點數)。最近的事情是,我試圖使用dds格式而不是jpg(加載速度要快得多)。它適用於我所有的顏色/法線紋理(只需要垂直反轉圖像),但它會導致我所有的數據映射出錯。我嘗試了幾種方法,比如禁用alpha,它可以在jpg上運行,但不能在dds上運行。我認爲這是由像素插值造成的,這在jpg/png/bmp和dds之間似乎是不同的。openGL:如何禁用dds紋理上的像素插值

有沒有辦法禁用插值?

如果問題不是插值,你知道它會是什麼嗎?

+0

除非你顯示一些代碼,否則不可能告訴出了什麼問題。 – BDL

+0

謝謝,但顯示代碼是非常困難的。我的觀點是,當我認爲jpg和dds之間的像素插值不同時,如果我是對的,如果這是正確的,如何禁用它。 – MCphylyss

+0

圖像格式不定義插值,只有採樣器參數。另外,如果你依賴有損DXT壓縮(正如我所理解的那樣)'數據映射'(它們是什麼?),那麼得到不準確/錯誤的值是正常的。 – pleluron

回答

0

像pleluron說,我的dds紋理使用DXT壓縮,這導致質量損失。加上RGBA浮動解碼會導致錯誤的數據。插值不是這裏的問題。

+0

在着色器中也使用'texelFetch()',這樣數據就不會被內插。 – pleluron

+0

不知道,功能,我會看看它。非常感謝! – MCphylyss