Android opengles中的颜色覆盖纹理映射
我正在使用opengl es和android。我在屏幕上有三个对象,其中两个我没有使用纹理贴图,只有颜色,还有一个我正在使用。当我注释掉绘制两个颜色对象的代码时,纹理会很好地映射到我的另一个对象上,但是当两个颜色对象存在时,纹理不会映射到我的对象上,我只得到一个白色正方形。在我绘制颜色对象之后,是否需要调用opengl,以便纹理在另一个对象上渲染 在绘制两个颜色对象之前,我猜您正在调用Android opengles中的颜色覆盖纹理映射,android,opengl-es,Android,Opengl Es,我正在使用opengl es和android。我在屏幕上有三个对象,其中两个我没有使用纹理贴图,只有颜色,还有一个我正在使用。当我注释掉绘制两个颜色对象的代码时,纹理会很好地映射到我的另一个对象上,但是当两个颜色对象存在时,纹理不会映射到我的对象上,我只得到一个白色正方形。在我绘制颜色对象之后,是否需要调用opengl,以便纹理在另一个对象上渲染 在绘制两个颜色对象之前,我猜您正在调用glDisable(GL\u TEXTURE\u 2D),如果是这样,您需要在使用纹理绘制对象之前调用glEna
glDisable(GL\u TEXTURE\u 2D)
,如果是这样,您需要在使用纹理绘制对象之前调用glEnable(GL\u TEXTURE\u 2D)
所以你的代码应该是这样的:
glDisable(GL_TEXTURE_2D)
drawColorObject1();
drawColorObject1();
glEnable(GL_TEXTURE_2D)
drawTextureObject();
在绘制两个颜色对象之前,我猜您正在调用
glDisable(GL\u TEXTURE\u 2D)
,如果需要,在使用纹理绘制对象之前,您需要调用glEnable(GL\u TEXTURE\u 2D)
所以你的代码应该是这样的:
glDisable(GL_TEXTURE_2D)
drawColorObject1();
drawColorObject1();
glEnable(GL_TEXTURE_2D)
drawTextureObject();
如果没有一些代码,即使是经验丰富的opengl开发人员也很难发现问题。您是否检查了glEnable/Disable(GL_TEXTURE_2D)错误?@SteveL在“表面创建”方法中,我启用了GL_TEXTURE_2D,但我是否应该在ondrawframe方法中适当地启用/禁用它?@SteveL这就是感谢您朝着正确的方向点头!如果没有一些代码,即使是经验丰富的opengl开发人员也很难发现问题。您是否检查了glEnable/Disable(GL_TEXTURE_2D)错误?@SteveL在“表面创建”方法中,我启用了GL_TEXTURE_2D,但我是否应该在ondrawframe方法中适当地启用/禁用它?@SteveL这就是感谢您朝着正确的方向点头!