Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android opengles中的颜色覆盖纹理映射_Android_Opengl Es - Fatal编程技术网

Android opengles中的颜色覆盖纹理映射

Android opengles中的颜色覆盖纹理映射,android,opengl-es,Android,Opengl Es,我正在使用opengl es和android。我在屏幕上有三个对象,其中两个我没有使用纹理贴图,只有颜色,还有一个我正在使用。当我注释掉绘制两个颜色对象的代码时,纹理会很好地映射到我的另一个对象上,但是当两个颜色对象存在时,纹理不会映射到我的对象上,我只得到一个白色正方形。在我绘制颜色对象之后,是否需要调用opengl,以便纹理在另一个对象上渲染 在绘制两个颜色对象之前,我猜您正在调用glDisable(GL\u TEXTURE\u 2D),如果是这样,您需要在使用纹理绘制对象之前调用glEna

我正在使用opengl es和android。我在屏幕上有三个对象,其中两个我没有使用纹理贴图,只有颜色,还有一个我正在使用。当我注释掉绘制两个颜色对象的代码时,纹理会很好地映射到我的另一个对象上,但是当两个颜色对象存在时,纹理不会映射到我的对象上,我只得到一个白色正方形。在我绘制颜色对象之后,是否需要调用opengl,以便纹理在另一个对象上渲染

在绘制两个颜色对象之前,我猜您正在调用
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这就是感谢您朝着正确的方向点头!