|
|
1
4
|
|
|
2
1
这是一个非常有趣的问题,我已经从几个角度解决了这个问题。 这个问题相当复杂,并且取决于平台,您似乎在EGL上运行,这意味着嵌入式,在那里,除非您的平台提供,否则您几乎没有选择。 您可以选择: glTexSubImage2DglTexSubImage2D 可以将几种缓冲区从OpenGL纹理复制到CPU内存。不幸的是,它在GLES 2/3中不受支持, 但是 您的嵌入式提供商可能通过扩展来支持它。这很好,因为您可以渲染到FBO,也可以从所需的特定纹理中获取像素。它还需要最少的代码转换。 GLREAD像素glReadPixels 是下载已渲染的全部或部分GPU像素的最常见方式。虽然速度很慢,但它可以在GLE和桌面上运行。在桌面上,有一个像样的GPU可以承受高达交互式帧速率,但在嵌入式上要小心 真正地 速度较慢,因为它会停止渲染线程以获取数据(确保了可怕的帧丢失)。您可以保存代码,因为它可以在最小的代码修改下工作。 像素缓冲区对象(PBO)一旦你开始做真正的研究 PBO's 出现在这里和那里,因为它们可以异步工作。它们通常在嵌入式系统中不受支持,但即使在普通的GPU上也可以在桌面上很好地工作。设置起来也有点棘手,需要进行特定的渲染修改。 帧缓冲区
据我所知,渲染到纹理和流到帧缓冲区是他们制作您在
Ableton Push 2
更奇特的Dispmanx/OpenWF在一些嵌入式系统(尤其是Raspberry Pi和大多数Broadcom Videocore)上,您可以使用DispmanX。 Whichs is really interesting : 这很有趣:
基本上,DispmanX非常接近纯金属。因此,它甚至比帧缓冲区或EGL更深。非常有趣的东西,因为你可以使用
这几乎就是我发现的。 |