Opengl 纹理影响对象的颜色

Opengl 纹理影响对象的颜色,opengl,opencv,textures,Opengl,Opencv,Textures,我正在将我的网络摄像头输入(OpenCV)映射为OpenGL平面中的纹理。当我执行程序时,我注意到纹理会影响其他存在平面的颜色。因此,如果我有黑色纹理,我就看不到我的3d场景。OpenGL中有没有办法避免纹理影响其他对象的颜色? 理想的结果应该是,如果纹理为黑色,则只有一个平面应为黑色,其他平面应保持先前定义的颜色。OpenGL API更改渲染上下文的状态。渲染上下文还包括用于生成几何体片段的实际纹理 如果启用纹理(即.*glEnable(GL_TEXTURE_2D)*),这将应用于绘制的所有几

我正在将我的网络摄像头输入(OpenCV)映射为OpenGL平面中的纹理。当我执行程序时,我注意到纹理会影响其他存在平面的颜色。因此,如果我有黑色纹理,我就看不到我的3d场景。OpenGL中有没有办法避免纹理影响其他对象的颜色?

理想的结果应该是,如果纹理为黑色,则只有一个平面应为黑色,其他平面应保持先前定义的颜色。

OpenGL API更改渲染上下文的状态。渲染上下文还包括用于生成几何体片段的实际纹理

如果启用纹理(即.*glEnable(GL_TEXTURE_2D)*),这将应用于绘制的所有几何图形,直到设置此状态标志为止。可以使用*glDisable(GL\U纹理\U 2D)*禁用纹理

可能您没有禁用其他平面的纹理,实际上纹理仍然应用于其他平面

您应该执行以下操作:

glEnable(GL_TEXTURE_2D);
...
DrawPlane0();   // This plane is textured
...
glDisable(GL_TEXTURE_2D);
...
DrawPlane1();   // This plane is not textured