Is it possible to make an OpenGL ES layer transparent?
Is it possible to make the backgroun开发者_如何转开发d of an OpenGL ES layer transparent so you can see what is behind the OpenGL ES content?
You have to do two things:
- When you initialize your CAEAGLLayer, set the opaque property to NO (or FALSE).
You may also need to make sure your drawableProperties uses a color format that supports transparency (kEAGLColorFormatRGBA8 does, but kEAGLColorFormatRGB565 does not).
eaglLayer.opaque = NO;
eaglLayer.drawableProperties = [NSDictionary dictionaryWithObjectsAndKeys: [NSNumber numberWithBool:NO], kEAGLDrawablePropertyRetainedBacking, kEAGLColorFormatRGBA8, kEAGLDrawablePropertyColorFormat, nil];
If you are using XCode's OpenGL project template, this will be in [EAGLView's initWithCoder].
- Draw the background in a transparent color and alpha.
glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
If you are using XCode's OpenGL project template, this will be in the "render" methods: [ES1Renderer render] and [ES2Renderer render].
精彩评论