1
我正在使用android的opengl es。我在屏幕上有三个对象,其中两个我没有使用纹理贴图,只是颜色,还有一个是我。当我将绘制两个颜色对象的代码注释掉时,纹理会很好地映射到其他对象上,但是当两个颜色对象存在时,纹理不会映射到我的对象上,而只会得到一个白色方块。绘制颜色对象之后,是否需要对opengl进行调用,以便纹理将在另一个对象上呈现?颜色覆盖opengl的纹理映射es
我正在使用android的opengl es。我在屏幕上有三个对象,其中两个我没有使用纹理贴图,只是颜色,还有一个是我。当我将绘制两个颜色对象的代码注释掉时,纹理会很好地映射到其他对象上,但是当两个颜色对象存在时,纹理不会映射到我的对象上,而只会得到一个白色方块。绘制颜色对象之后,是否需要对opengl进行调用,以便纹理将在另一个对象上呈现?颜色覆盖opengl的纹理映射es
在你吸取上述两种颜色对象我猜你在呼唤glDisable(GL_TEXTURE_2D)
,如果是的话,你需要调用glEnable(GL_TEXTURE_2D)
你与纹理绘制对象之前。
所以,你的代码应该是类似的东西:
glDisable(GL_TEXTURE_2D)
drawColorObject1();
drawColorObject1();
glEnable(GL_TEXTURE_2D)
drawTextureObject();
它可以是一百万的东西错了(好吧,也许没有那么多)。没有一些代码,它很难找到问题,即使是经验丰富的OpenGL的开发。你检查了glEnable/Disable(GL_TEXTURE_2D)错误吗? – SteveL
@SteveL那么在表面上创建的方法,我启用GL_TEXTURE_2D,但我应该在ondrawframe方法适当启用/禁用? – sam
@SteveL,这是感谢您在正确的方向点头! – sam