如何關閉紋理單元,或至少在綁定紋理時防止其狀態發生變化?我使用着色器,所以沒有glDisable這個我不認爲。問題是,事件鏈可能是這個樣子:OpenGL,禁用紋理單元,glActiveTexture和glBindTexture
Create texture 1 (implies binding it)
Use texture 1 with texture unit 1
Create texture 2 (implies binding it)
Use texture 2 with texture unit 2
,但鑑於glActiveTexture語義,看來這是不可能的,因爲建立紋理2將成爲紋理單元的狀態相關聯1,因爲那是我稱之爲glActiveTexture的最後一個單元。即你必須寫:
Create texture 1
Create texture 2
Use texture 1 with texture unit 1
Use texture 2 with texture unit 2
我已經簡化過程的例子,但事實證明,創建和綁定紋理可以順帶影響,即使你只綁定了紋理的一部分,當前激活的紋理單元創作過程讓我有些不舒服。除非我在這裏犯了一個錯誤,並且我可以做些什麼來禁用當前glActiveTexture中的狀態更改?
感謝您的任何幫助,您可以在這裏給我。
我剛剛讀到EXT_direct_state_access是一種不完成的文章,所以我想我會避免它。但是總體來說不,我不打算做這樣的紋理創建和交叉綁定,但它確實讓我覺得在某些時候我會得到一個黑色的表面,並且很難追蹤它! – Robinson