2011-09-23 200 views
1

我很緊張地問這個問題,因爲我看過幾個帖子暗指答案,但沒有一個適合我。如果這是重複的道歉。iPhone openGL ES 2.0紋理 - 爲片段着色器設置多個紋理

我想在iPhone 4(OS 4.3)的片段着色器中訪問多個紋理(此刻爲2)。我的代碼正確設置了第一個紋理,着色器可以在我的模型上讀取和使用它。一旦我嘗試添加第二個紋理,它會覆蓋第一個紋理,而不是給我兩個紋理。

有沒有一個很好的教程,將多個紋理傳遞給ES2.0中的像素着色器?我認爲我不適當地覆蓋相同的紋理槽或類似的東西。

我的代碼很混亂和冗長。其中很多是在線樣本。稍後清理。 謝謝!

鏈接: My code excerpts pertaining to texture loading and shader usage

回答

2

這一個很簡單。交換「//綁定到紋理」和「//獲取統一的位置」。塊,它應該工作。問題是你正在設置一些制服的值,而不知道它們的位置(你在緊接着的步驟中獲得的)。

所以發生的效果不是「一個紋理被覆蓋」,但是這兩個採樣器都包含(默認值)0,所以兩者都讀取相同的紋理。

希望這會有所幫助。

+1

對我來說,第一次glUniform調用之前缺少glUseProgram(統一的位置看起來沒問題)。 – melfar