代码之家  ›  专栏  ›  技术社区  ›  gct

是否可以在嵌入式平台上直接访问OpenGL ES 2.0纹理内存?

  •  1
  • gct  · 技术社区  · 15 年前

    我正在基于OMAP 3530的平台上编写一些GP-GPU代码,但由于openGL ES 2.0中缺少GLGETEXIMAGE函数,我遇到了麻烦。由于该平台为GPU使用集成内存,我想知道是否有什么方法可以让指针直接指向内存中分配的纹理。通过这种方式,我可以将数据读回,而无需将其推送到帧缓冲区,因为帧缓冲区会丢弃大量数据。

    1 回复  |  直到 15 年前
        1
  •  3
  •   csanta    14 年前

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

    1. 您可以跨FBO共享颜色(和深度/模具)缓冲区
    2. 可以直接将纹理附着到FBO,而无需执行复制操作