Android Opengl FBO 离屏

标签 android opengl-es opengl-es-2.0 fbo

我正在开发一个 Android 应用程序类型的手指绘画。我正在使用 OpenGL ES 2.0。基本上我有一个图像,其中每个触摸屏都应该对应一个要应用的圆形 alpha,它显示在下方的其他图像。我尝试了不同的技术,但速度相当慢,因为它的功能类似于使用有机 glTexSubImage2D 来减慢渲染阶段。我试图了解 FBO 的使用,因为它们允许离屏渲染。谁能更好地解释离屏渲染的含义以及可以加快我的方法的哪些优势?

我想离屏意味着你可以改变我创建的帧缓冲区,不影响 onDrawFrame?在另一个线程中?

最佳答案

除了能够使用 OpenGL 渲染到屏幕上的窗口之外 ES 2.0,您还可以渲染到不可见的屏幕外表面,称为 pbuffers(像素缓冲区的缩写)。 Pbuffers 可以充分利用任何硬件 OpenGL ES 2.0 可用的加速,就像窗口一样。 Pbuffer 最常用于生成纹理贴图。如果你想 要做的是渲染到纹理,我们建议使用帧缓冲区对象(涵盖 在第 12 章,“帧缓冲区对象”中)而不是 pbuffers,因为它们是 更高效。但是,pbuffer 在某些情况下仍然有用 不能使用帧缓冲区对象,例如在渲染离屏时 使用 OpenGL ES 进行表面处理,然后将其用作另一个 API 中的纹理,例如 作为 OpenVG。

[来源:OpenGL ES 2.0 编程指南]

希望对您有所帮助。仔细阅读 - “pbuffer 仍然可以用于使用 OpenGL ES 渲染到屏幕外表面”

关于Android Opengl FBO 离屏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14381798/

相关文章:

android - Android 5.1 上的 Adreno 420 驱动程序错误

android - viewpager 页面中 mapview 的手势问题

java - 线性布局 : Aligning to the Right of the parent

java - Android min3D 使用触摸围绕对象旋转

java - Android OpenGLES 骨骼动画问题

android - 是否有屏幕尺寸大于 GL_MAX_TEXTURE_SIZE 的 Android 设备?

Android 应用程序 + 具有完整驱动器访问权限的 Drive API ... 程序是什么?

java - android 数组通过可绘制资源与 onClick 事件

ios - GLImageProcessing ROI(感兴趣区域)

android - 设置gl_PointSize导致的闪屏/全黑屏