android OpenGL ES实现渲染到透明的纹理 render to transparent texture
16lz
2021-01-23
PC上OpenGL渲染到纹理,很容易得到透明背景,但是在android上OpenGL ES渲染出来是黑色背景,对于这个问题,想了两个解决办法。
1> 让android的OpenGL ES环境支持RGBA,默认android系统给出的渲染环境是RGB565的,这是出于性能原因。如果framebuffer不支持alpha通道,renderToTexture当然得不到透明纹理。
在androidmanifest.xml文件里改用OpenGL ES2.0,并为GLSurefaceView.Render改用RGBA8888配置,仍然得不到透明图像。尝试失败。
2> 第二种憋足的办法,读取render2texture的pixels,然后手动修改其黑色背景为透明。渲染后使用glReadPixels读取,但是这种办法效率低下,每一帧都这样干是不可能的。
更多相关文章
- Android实现背景图与状态栏融合
- android中判断横屏或者竖屏并改变背景
- Android修改AlertDialog的背景颜色
- Android ListView里设置默认Item的背景颜色
- Android自定义Button背景色,弧度
- Android布局背景颜色设置
- Android利用drawable文件夹自定义控件背景、样式