簡體   English   中英

Android,OpenGL ES 1.0,Alpha

[英]Android, OpenGL ES 1.0, Alpha

我是OpenGLES的新手,我試圖繪制一個帶有alpha的矩形,但是alpha在屏幕上不受影響。 請幫助我弄清楚我的地方。

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();

如果希望繪制的對象是透明的,則必須首先啟用混合。

首先繪制背景,然后設置以下選項:

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

然后像上面一樣嘗試繪制透明對象。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM