OpenGL,纹理对象的透明度

时间:2012-07-14 16:36:37

标签: android opengl-es transparency

我正在尝试将透明度应用于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);  

我做错了什么?

0 个答案:

没有答案