2011-01-12 53 views
2

我有幾個關於glTexParameter和過濾的問題glTexParameter和在OpenGL和GLSL中過濾?

1)什麼是應用glTexParameter(特別是過濾)的範圍?這裏有一個場景:

  • 綁定紋理。將濾鏡設置爲LINEAR
  • 將紋理設置爲着色器的「Sampler1」
  • 綁定另一個紋理。設置其篩選器最近
  • 設置該紋理着色器
  • 的「Sampler2」畫

當我在着色器使用的紋理,將一個是線性的,而另一個是最近的?或者他們都會因爲被稱爲「最後」而離得最近?

2)是否可以在GLSL中設置過濾方法?

回答

5

1)過濾模式是紋理對象的參數,即過濾模式只適用於設置過濾模式時激活的紋理對象。

2)過濾模式是採樣器的一個參數,必須在整個着色器執行過程中保持不變。因此它不能在着色器內改變。然而,可以解決單個紋理級別和採樣不適用任何濾波的情況,這可用於實現自定義濾波方法(儘管這些方法性能會低得多)。

2

同樣的事情也打擾了我,但是當我看到你的帖子時,我想出了一個解決方案,即在同一着色器上使用最接近的&線性。

首先,將紋理設置爲線性。當你需要最近的時候,你只需要將uv位置夾在像素網格的中心。基於線性插值的行爲,我希望結果就像最接近的那樣。