1

我正在基于 OMAP 3530 的平台上处理一些 GP-GPU 代码,并且由于 openGL ES 2.0 中缺少 glGetTexImage 函数而受到阻碍。由于该平台为 GPU 使用集成内存,我想知道是否有任何方法可以直接获取指向内存中分配纹理的指针。这样我就可以读回我的数据,而不必将其推入帧缓冲区,这会丢弃大量数据。

4

1 回答 1

3

据我所知,没有办法做你描述的事情。最接近和最有效的方法是渲染到 FBO,这样可以将纹理绑定为颜色缓冲区并使用 glReadPixels 来获取像素。由于 glReadPixels api,这仍然需要读取帧缓冲区。与其他方法相比,使用 FBO 有一些优点:

  1. 您可以在同一个 EGLContext 中创建和使用多个 FBO(例如,如果您要使用 PBuffer,则无需上下文切换)
  2. 您可以跨 FBO 共享颜色(和深度/模板)缓冲区
  3. 您可以将纹理直接附加到 FBO,而无需进行复制操作
于 2011-05-01T23:27:56.340 回答