5
這與Switch shader program in WebGL有關,但我想重新提出這個問題,現在我對問題有了更清楚的認識以及我想問什麼。glUseProgram後,什麼狀態丟失/重置?
我試圖在不同的着色器程序之間切換,但我似乎無法在同一渲染中切換着色器程序時正確渲染。我認爲在撥打glUseProgram()
之後,狀態丟失或重置。
該通話後,哪些狀態丟失或重置?換句話說,我需要在glUseProgram()
後再次綁定?
感謝您的建議,但我一直在尋找更一般的建議,就像我需要再次設置制服還是保持其價值?屬性或統一位置對於一個給定的程序是否堅持其價值?紋理是否需要重新啓用?等等。 – AshleysBrain 2012-02-06 17:26:17
鏈接程序後,Attrib位置和實際統一的位置和值仍然存在。統一緩衝區可以綁定到更多的程序。紋理不需要重新啓用,因爲您沒有使用固定功能管線。 – Sam 2012-02-06 17:35:34
紋理單元具有多個附着點,例如可以綁定2D和3D紋理,並使用適當的採樣器制服訪問它們中的任何一個。 – Sam 2012-02-06 17:37:09