2013-03-04 132 views
0

我最近在OpenGL應用程序中實現了Awesomium。 當我將Awesomium加載到紋理中時,無論我是否將紋理繪製到表面上,OpenGL都會在其着色過程中包含它。OpenGL着色器忽略紋理

我想跟蹤正在處理紋理到代碼中的代碼行,OpenGL是否使用特定的函數來訪問所有紋理或告訴OpenGL忽略紋理的方法?

更新紋理塊

glBindTexture(GL_TEXTURE_2D, SkypeHUD); 
glTexImage2D(GL_TEXTURE_2D, 0, 4, AwesomiumW, AwesomiumH, 0, GL_BGRA, GL_UNSIGNED_BYTE, surface->buffer()); 

創建紋理塊

glBindTexture(GL_TEXTURE_2D, SkypeHUD); 
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); 
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); 
glBindTexture(GL_TEXTURE_2D, 0); 

用圖紙無紋理場景加載:http://puu.sh/2bVTV 繪製的場景我已經加載紋理後:http://puu.sh/2bVUb

你可以看到它混合谷歌紋理在其他人。

回答

0

紋理啓用/禁用應該受着色器代碼控制,而不是一些客戶端綁定狀態。無論如何,你最有可能使用幾個紋理單位(glActiveTexture);紋理綁定對每個單元都是獨立的,所以如果你想要走這條路線,你必須做一些腿部的工作並從每個單元解開紋理。

+0

感謝您的建議,我似乎正在取得進展:D! – user2131737 2013-03-04 14:50:16

相關問題