我尝试使用 GLSurfaceView 进行渲染,并通过文档设置格式:
getHolder().setFormat(PixelFormat.TRANSLUCENT);
我使用 GLSurfaceView.Renderer,它在 onDrawFrame 中绘制:
GLES20.glClearColor(0, 0, 1, .5f);
GLES20.glClear(GLES20.GL_DEPTH_BUFFER_BIT | GLES20.GL_COLOR_BUFFER_BIT);
但是,GLSurfaceView 中的 GL 渲染不是半透明的,而是全蓝色的。如果我省略 glClear 调用,那么它就是全黑的。
如何使 GL 渲染具有透明背景,以便与在其后面绘制的视图混合?
编辑:这是我的 GLSurfaceView:
class GLView extends GLSurfaceView{
MyRenderer r;
public GLView(Context ctx){
super(ctx);
setEGLContextClientVersion(2);
getHolder().setFormat(PixelFormat.TRANSLUCENT);
setEGLConfigChooser(8, 8, 8, 8, 16, 0);
r = new MyRenderer(getContext());
setRenderer(r);
}
}