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 直接到控制台帧缓冲区的主要内容,如果未能解决你的问题,请参考以下文章

缩放 OpenGL ES 帧缓冲区的内容

iOS OpenGL ES Analyzer 列出“不存在的帧缓冲区附件”和“缺少帧缓冲区附件”,但 FBO 工作

来自 OpenGL ES 帧缓冲区 (iOS) 的 CGImageRef

如何在 iPhone OpenGL ES 2.0 中在渲染和呈现帧缓冲区之间切换?

在 OpenGL ES 中为帧缓冲区使用深度和模板渲染缓冲区附件

如何在 iOS 中制作 OpenGL ES 帧缓冲区的副本?