2

私は OpenGLES を初めて使用し、アルファ付きの四角形を描画しようとしましたが、アルファは画面に影響しませんでした。私がどこから外れているかを理解するのを手伝ってください。

GLES10.glEnableClientState(GL10.GL_VERTEX_ARRAY);
GLES10.glClear(GL10.GL_COLOR_BUFFER_BIT);
GLES10.glColor4f(0.5f, 0.5f, 0.5f, 0.1f);  <-- NOT Working , please help 0.1 alpha not taken   
GLES10.glPushMatrix();GLES10.glEnableClientState(GL10.GL_VERTEX_ARRAY);
GLES10.glVertexPointer(
        3,
        GL10.GL_FLOAT,
        0,
        RendererImpl.makeFloatBuffer(new float[] { -160.0f, -100.0f,
                0.0f, 160.0f, -100.0f, 0.0f, 160.0f, 100.0f, 0.0f,
                    -160.0f, 100.0f, 0.0f }));
GLES10.glDrawArrays(GL10.GL_TRIANGLE_FAN, 0, 4);
GLES10.glDisableClientState(GL10.GL_VERTEX_ARRAY);
GLES10.glPopMatrix();
GLES10.glFlush();
4

1 に答える 1

5

描画するオブジェクトを透明にしたい場合は、最初にブレンドを有効にする必要があります。

最初に背景を描画してから、次のオプションを設定します。

glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

次に、上記のように透明なオブジェクトを描画してみます。

于 2012-06-24T05:14:57.110 に答える