我有一个场景,我希望使用多纹理绘制一些对象。我还想仅使用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上的轮廓是实心的。这就是我想要展示的大纲。
注意:对于多纹理对象(三角形3),三角形1和4上的轮廓渐变。
答案 0 :(得分:0)
在this previous question找到了我认为无关的解决方案。
我不明白为什么,但我需要打电话:
gl.glActiveTexture(GL10.GL_TEXTURE0);
在纹理2块之后。