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

标签 linux performance opengl textures

是否可以在不影响性能的情况下将部分纹理移动到另一个纹理部分?

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

最佳答案

glCopyPixels 可让您从一个帧缓冲区复制到另一个(我从未使用过)。

glBlitFramebuffer 让您可以在帧缓冲区之间复制像素

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

使用这些功能,您可以通过以下操作完成任务:

  1. 创建 FBO,将 texture-1 附加到第一个颜色 channel
  2. 绑定(bind)fbo,设置视口(viewport)包含源区域
  3. 调用 glCopyTexSubImage 到 texture-2 中获取内容

关于linux - 将纹理数据从一个纹理部分移动到另一个部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5316649/

相关文章:

linux - 这个 bash 语法是什么意思? (以 : case, exec 为特色)

linux - 如何在 Linux 中访问 "tee"/dev/video?

c - Playground.exe : 0xC0000005: Access violation reading location 0x0A08D000 中的 0x69F1454A (nvoglv32.dll) 处抛出异常

c++ - 如何在 OpenGL 即时模式下永久绘制东西?

c++ - Linux 上 gcc 4.9.2 的奇怪行为

linux - bash |管道到 bash 函数

java - 奇怪的分支性能

java - 以有效的方式获取所有可能的数组索引位置

python - OpenCV Python : Reading and setting every pixel too slow

opengl - VBO 中的指数和法线有意义吗