使用 Open GL ES 2.0 创建 OFF SCREEN 表面
Posted
技术标签:
【中文标题】使用 Open GL ES 2.0 创建 OFF SCREEN 表面【英文标题】:Creating OFF SCREEN surface using Open GL ES 2.0 【发布时间】:2014-12-16 10:10:42 【问题描述】:我想通过在 EGL 初始化期间创建用户定义的表面来使用 OpenGL ES 2.0 绘制一个场景。 这样我就可以使用绘制的表面进行进一步处理。
我认为我们必须使用 eglCreatePixmapsurface(),但我不确定它的用法。请帮忙?
【问题讨论】:
您是否尝试过阅读有关 FBO(帧缓冲区对象)的信息?基本上你所做的就是创建一个帧缓冲区,附加一个渲染缓冲区(或者更确切地说是一个纹理),然后像普通(主)帧缓冲区一样绘制到它。然后你就可以像使用其他纹理一样使用这个纹理了。 Open GL ES creating Off-screen的可能重复 【参考方案1】:大多数平台都不支持像素图。你也许可以用你的 EGL 创建一个,但如果你的操作系统不知道它是什么,它就没有用了。
在 android 上,必须按照 here 的说明创建屏幕外表面。
FBO 是大多数平台上的最佳解决方案,但 FBO 确实适用于使用 OpenGL ES 进行进一步处理。读取图像通常需要使用 glReadPixels(),这在大多数平台上非常慢。
我收集了一系列文章 here,展示了如何在某些平台上使用 FBO。
【讨论】:
以上是关于使用 Open GL ES 2.0 创建 OFF SCREEN 表面的主要内容,如果未能解决你的问题,请参考以下文章