将纹理数据从一个纹理部分移动到另一个部分

问题描述:

是否可以将部分纹理移动到另一个纹理部分而没有性能命中?将纹理数据从一个纹理部分移动到另一个部分

我看着opengl SDK,但还没有找到任何可以做这样的事情。

glCopyPixels让你从一个帧缓冲区复制到另一个(我从来没有使用它)。

glBlitFramebuffer可以让你的帧缓冲区之间复制像素

glCopyTexImage可以让你从帧缓冲区复制像素到纹理

使用这些功能,您可以完成该任务,例如,以下操作:

  1. 创建FBO,将纹理-1附加到第一个颜色通道
  2. 绑定fbo,设置视口以包含源区域
  3. 呼叫glCopyTexSubImage到纹理-2中得到的内容
+0

这并不完全符合我一直在寻找,因为它需要渲染的纹理,读缓冲区(相当慢的操作)和复制像素。顺便说一句glBlitFramebuffer是唯一的窗口功能 – 2011-03-16 07:46:56

+2

你似乎误解了这个想法。这里没有渲染操作。这是一个纯粹的像素处理。 GPU内部的读缓冲区不*速度慢。 'glBlitFramebuffer'是OpenGL规范的一部分,所以它不是以任何方式* windows *。 – kvark 2011-03-16 11:50:00

+0

doh我的GPU不支持EXT_Framebuffer_object :(我正在研究一个弱嵌入式GPU,它不完全支持2.1 opengl。 – 2011-03-16 14:01:29