我正在尝试将透明度应用于OpenGL ES
中的纹理对象,并在绘制对象之前执行了以下操作:
gl.glColor4f(1.0f, 1.0f, 1.0f, 0.5f);
gl.glEnable(GL10.GL_BLEND);
gl.glBlendFunc(GL10.GL_SRC_ALPHA, GL10.GL_ONE_MINUS_SRC_ALPHA);
但它反而将对象绘制得完全不透明......
如果我将混合函数更改为gl.glBlendFunc(GL10.GL_SRC_ALPHA, GL10.GL_ONE);
,则正确绘制透明度,但我更喜欢第一个选项。
对象的绘图功能调用3D模型的绘图功能,如下所示:
gl.glFrontFace(GL10.GL_CCW);
gl.glVertexPointer(3, GL10.GL_FLOAT, 0, mVertexBuffer);
gl.glColorPointer(4, GL10.GL_FLOAT, 0, mColorBuffer);
gl.glNormalPointer(GL10.GL_FLOAT, 0, mNormalBuffer);
gl.glTexCoordPointer(2, GL10.GL_FLOAT, 0, mTexBuffer);
gl.glDrawElements(GL10.GL_TRIANGLES, faceCount, GL10.GL_UNSIGNED_SHORT, mIndexBuffer);
我做错了什么?