是否有可能使OpenGL ES图层透明?
是否有可能使OpenGL ES层的背景变得透明,以便了解OpenGL ES内容的背后?
你必须做两件事情:
- 初始化CAEAGLLayer时,将opaque属性设置为NO(或FALSE)。
您可能还需要确保您的drawableProperties使用支持透明度的颜色格式(kEAGLColorFormatRGBA8,但kEAGLColorFormatRGB565不)。
eaglLayer.opaque = NO;
eaglLayer.drawableProperties = [NSDictionary dictionaryWithObjectsAndKeys: [NSNumber numberWithBool:NO], kEAGLDrawablePropertyRetainedBacking, kEAGLColorFormatRGBA8, kEAGLDrawablePropertyColorFormat, nil];
如果你正在使用XCode的OpenGL项目模板,这将在[EAGLView的initWithCoder]中。
- 用透明的颜色和alpha绘制背景。
glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
如果你正在使用XCode的OpenGL项目模板,这将在“render”方法中:[ES1Renderer render]和[ES2Renderer render]。