0

我对使用 openGL 有一些疑问我是使用 openGL 的新手,我尝试设置正方形的 RGB,它可以工作,但在我使用混合功能后它不起作用。当它重绘时,正方形最终消失了。

以下是部分代码

@Override
public void onDrawFrame(GL10 gl) {
    // clear Screen and Depth Buffer
    gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);

    // Reset the Modelview Matrix
    gl.glLoadIdentity();

    // Drawing
    gl.glTranslatef(0.0f, 0.0f, -5.0f);     // move 5 units INTO the screen
    GLES20.glBlendFunc(GLES20.GL_SRC_ALPHA, GLES20.GL_ONE_MINUS_SRC_ALPHA);
    GLES20.glEnable(GLES20.GL_BLEND);                   // is the same as moving the camera 5 units away
    square.draw(gl);                        // Draw the triangle
    //square.loadGLTexture(gl, this.context);
    gl.glColor4f(red, green, blue, 0f);
    red = red - 0.01f;
    blue = blue - 0.01f;
    green = green - 0.01f;
    GLES20.glDisable(GLES20.GL_BLEND);


}
4

1 回答 1

1

第一次调用 onDrawFrame 时,颜色和深度缓冲区都被清除,然后绘制一个三角形,之后,颜色更改为 0 alpha 值。

下次调用 onDrawFrame 时,会再次绘制三角形,但这次使用 alpha 值 0。由于颜色和深度缓冲区都已被清除,您可能看到的只是一个空屏幕,因为 0 alpha,使用该混合功能,可以翻译为“完全透明”。

于 2013-04-10T10:05:33.910 回答