android OpenGL ES实现渲染到透明的纹理 render to transparent texture
16lz
2021-12-04
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 selector 背景选择器
- Android(安卓)修改EditText的光标颜色和背景色
- Android利用drawable文件夹自定义控件背景、样式
- Android关于LinearLayout和RelativeLayout背景设置的区别
- Style与Theme
- Android中使用Dialog风格弹出框的Activity
- Android中设计具有背景图的按钮—ImageButton的焦点及事件处理
- 取消默认Listview点击的显示的颜色