【问题标题】:OpenGL (ES): Efficiently get vertex data from textureOpenGL (ES):从纹理中高效获取顶点数据
【发布时间】:2012-09-17 01:22:35
【问题描述】:

我有一个 OpenGL 纹理,它是通过我的 FBO 中的几个渲染通道生成的。
现在我想将纹理用作 VBO 中的顶点数据并用它渲染内容。
由于所有数据都是 GPU 端的,是否有一种有效的方法可以在 OpenGL 中将纹理数据传输(或重新解释)为顶点数据?

还是我必须一直通过 CPU 与

// ... generate texture on GPU.
glReadBuffer(..where the texture is..);
glReadPixels(..., mainMemoryBuffer);
glBufferSubData(GL_ARRAY_BUFFER, ..., mainMemoryBuffer);

?还是有其他方法可以实现我想要的?

【问题讨论】:

    标签: graphics opengl-es gpu gpgpu


    【解决方案1】:

    好的。经过更多研究,似乎 PBO(像素缓冲区对象)是启用此功能的 OpenGL 功能:

    glBindBuffer(GL_PIXEL_PACK_BUFFER, myVbo);
    glReadPixels(..., 0);
    

    不幸的是,它们似乎在 OpenGL ES (see this thread on GameDevelopment) 上不可用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-15
      • 1970-01-01
      • 2012-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多