使用多纹理和GL_LINES时,OpenGL会发生冲突

时间:2012-12-02 23:32:19

标签: android opengl-es

我有一个场景,我希望使用多纹理绘制一些对象。我还想仅使用gl.glDrawArrays绘制一些对象(GL10.GL_LINES ......

但是,每当我在屏幕上添加应用了两个纹理的对象时,使用GL_LINES或纯色的所有对象都会变淡。

我试图整理一个simple demo,其中所有对象使用相同的绘制方法(希望我在尝试简化时不会产生更多混淆)。

我在Model.java中处理多纹理,其中包含相关部分:

// Texture 1
gl.glClientActiveTexture(GL10.GL_TEXTURE0);
gl.glActiveTexture(GL10.GL_TEXTURE0);
gl.glEnableClientState(GL10.GL_TEXTURE_COORD_ARRAY);
gl.glBindTexture(GL10.GL_TEXTURE_2D, mTexture[0]);
gl.glTexEnvf(GL10.GL_TEXTURE_ENV, GL10.GL_TEXTURE_ENV_MODE, GL10.GL_MODULATE);
gl.glTexCoordPointer(2, GL10.GL_FLOAT, 0, mTexCoordBuffer1);
gl.glEnable(GL10.GL_TEXTURE_2D);

// Texture 2
gl.glClientActiveTexture(GL10.GL_TEXTURE1);
gl.glActiveTexture(GL10.GL_TEXTURE1);
gl.glEnableClientState(GL10.GL_TEXTURE_COORD_ARRAY);
gl.glBindTexture(GL10.GL_TEXTURE_2D, mTexture[1]);
gl.glTexEnvf(GL10.GL_TEXTURE_ENV, GL10.GL_TEXTURE_ENV_MODE, GL10.GL_DECAL);
gl.glTexCoordPointer(2, GL10.GL_FLOAT, 0, mTexCoordBuffer2);
gl.glEnable(GL10.GL_TEXTURE_2D);

非常感谢任何帮助。

注意:如果没有多纹理对象,则三角形1和4上的轮廓是实心的。这就是我想要展示的大纲。 Outlines show when no objects on screen using multi-texturing

注意:对于多纹理对象(三角形3),三角形1和4上的轮廓渐变。 Outlines look faded when I have a multi-textured object on screen

1 个答案:

答案 0 :(得分:0)

this previous question找到了我认为无关的解决方案。

我不明白为什么,但我需要打电话:

gl.glActiveTexture(GL10.GL_TEXTURE0);
在纹理2块之后