[英]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.