OpenGL ES 直接到控制台帧缓冲区
Posted
技术标签:
【中文标题】OpenGL ES 直接到控制台帧缓冲区【英文标题】:OpenGL ES direct to console framebuffer 【发布时间】:2015-08-12 15:05:05 【问题描述】:OpenGL ES 能否仅用于将几何图形渲染到纹理?如果是这样,那么如何处理呢?
我见过的所有代码都依赖于 windows、X、SDL 或驱动程序,所有这些都是不可取的,但在删除时会让人头疼。
我需要渲染图像以直接写入帧缓冲区控制台(/dev/fb0 和 fb1)。所以贴图效果会很好。
这是一个预启动环境,因此需要尽量减少依赖项/库,同时尽量避免编写自己的光栅化代码。
【问题讨论】:
【参考方案1】:您需要使用带有颜色纹理附件的 FBO(帧缓冲区对象)才能“将几何图形渲染到纹理”,您可以这样做而无需在屏幕上显示任何内容......但您仍然需要初始化 OpenGLES(创建 GLES 上下文等)所以如果你想“手动”而不使用像 SDL 这样的库,这仍然相当复杂(实际上你可以做的是从 SDL 或任何其他库中复制粘贴相关部分它提供了 GLES 初始化代码)。
将几何图形渲染到 FBO 后,您可以“glRead()”附加到 FBO 的纹理以获取 RAM 中的像素,然后对这些像素做任何您想做的事情(例如,blit 到帧缓冲区控制台)
【讨论】:
以上是关于OpenGL ES 直接到控制台帧缓冲区的主要内容,如果未能解决你的问题,请参考以下文章
iOS OpenGL ES Analyzer 列出“不存在的帧缓冲区附件”和“缺少帧缓冲区附件”,但 FBO 工作
来自 OpenGL ES 帧缓冲区 (iOS) 的 CGImageRef
如何在 iPhone OpenGL ES 2.0 中在渲染和呈现帧缓冲区之间切换?