2013-03-04 95 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

相关问题