繁体   English   中英

OpenGL着色器忽略纹理

[英]OpenGL shader ignore texture

我最近将Awesomium实现到OpenGL应用程序中。 当我将Awesomium加载到纹理中时,无论是否将纹理绘制到表面上,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

您可以看到它在其他纹理上融合了google纹理。

纹理启用/禁用应该由着色器代码控制,而不是某些客户端绑定状态。 无论如何,您很可能会使用多个纹理单位(glActiveTexture); 纹理绑定是每个单元的独立元素,因此,如果要执行此路线,则必须做一些腿部工作,并取消每个单元的纹理绑定。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM