WebGL将纹理帧缓冲区复制到纹理帧缓冲区?

死亡象

我正在尝试将纹理帧缓冲区复制到WebGL中的另一个帧缓冲区中,到目前为止,它只给出了黑屏。我能够毫无问题地在纹理帧缓冲区中进行渲染。

这是我认为可以使用的代码(目前可在iOS上使用):

// bind source fbo while we remember current fbo
glGetIntegerv(GL_FRAMEBUFFER_BINDING, &current_fbo);
glBindFramebuffer(GL_FRAMEBUFFER, src_framebuffer);

// setup source fbo attachments
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, src_handle, 0);
//glReadBuffer(GL_COLOR_ATTACHMENT0); <- commented out because it is not available in WebGL

// bind destination fbo
glActiveTexture(GL_TEXTURE0 + i);
glBindTexture(dest_target, dest_handle);

// copy from source to dest
glCopyTexImage2D(dest_target, 0, dest_format, 0, 0, dest_width, dest_height, 0);

// set back original fbo
//glReadBuffer(GL_NONE); 
glBindFramebuffer(GL_FRAMEBUFFER, current_fbo);

WebGL不支持glReadBuffer,所以我无法指定它,但是通过WEBGL_draw_buffers扩展,它支持多个渲染目标,因此我们可以设置附件没有问题(因此为什么渲染到纹理帧缓冲区的工作无懈可击)。

我意识到,由于无法指定读取缓冲区,因此也许该技术无法正常工作?有什么想法或解决方法吗?

死亡象

如果可以使用WebGL 2.0,则可以执行以下操作:

gl.bindFramebuffer(GL_READ_FRAMEBUFFER, src);
gl.bindFramebuffer(GL_DRAW_FRAMEBUFFER, dst);
gl.blitFramebuffer(src_left, src_bottom, src_right, src_top, 0, 0, dst_width, dst_height, mask, GL_NEAREST);

否则我认为使用是正确的gl.copyTexImage2D这里可以找到更详细的答案

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

OpenGL ES 2.0-如何有效地将纹理复制到帧缓冲区

来自分类Dev

无法渲染到帧缓冲区(纹理)

来自分类Dev

Webgl:销毁或重用缓冲区/纹理?

来自分类Dev

如何访问默认帧缓冲区的纹理

来自分类Dev

OpenGL:帧缓冲区-绘制纹理-glClearColor

来自分类Dev

在帧缓冲区和活动纹理之间形成WebGL反馈循环

来自分类Dev

如何在 WebGL 中为输出纹理或帧缓冲区提供偏移量?

来自分类Dev

将金属帧缓冲区复制到具有不同像素格式的MTLTexture

来自分类Dev

在绘制到帧缓冲区纹理时遇到问题。它画空白

来自分类Dev

从当前绑定到帧缓冲区的纹理单元进行OpenGL读取

来自分类Dev

glDeleteFramebuffers删除帧缓冲区对象,它是否删除附加到该帧缓冲区的纹理?

来自分类Dev

是否可以将纹理作为渲染目标附加到默认帧缓冲区?

来自分类Dev

复制并粘贴到帧缓冲区

来自分类Dev

LibGDX帧缓冲区

来自分类Dev

将反转的场景渲染到帧缓冲区

来自分类Dev

WebGL:同时使用纹理和颜色缓冲区

来自分类Dev

vim:将缓冲区复制到窗口

来自分类Dev

如何在 OpenGL 中重新定位绑定到帧缓冲区的 2D 纹理?

来自分类Dev

运行OpenGL着色器以修改现有的纹理/帧缓冲区

来自分类Dev

附加到帧缓冲区的OpenGL多样本整数纹理无法正确解析

来自分类Dev

使用帧缓冲区渲染为立方体贴图纹理

来自分类Dev

为什么从帧缓冲区创建的纹理无法正确映射

来自分类Dev

如何从OpenGL中的帧缓冲区纹理中采样像素?

来自分类Dev

附加到帧缓冲区的OpenGL多样本整数纹理无法正确解析

来自分类Dev

使用帧缓冲区渲染为立方体贴图纹理

来自分类Dev

调整大小后是否应将纹理重新附加到帧缓冲区

来自分类Dev

如何绘制目标纹理大于屏幕分辨率的帧缓冲区?

来自分类Dev

COLOR_ATTACHMENT's-如何在帧缓冲区对象内将多个纹理作为颜色附件渲染?

来自分类Dev

将RGBA32F纹理与帧缓冲区一起使用会引发INVALID_ENUM错误

Related 相关文章

  1. 1

    OpenGL ES 2.0-如何有效地将纹理复制到帧缓冲区

  2. 2

    无法渲染到帧缓冲区(纹理)

  3. 3

    Webgl:销毁或重用缓冲区/纹理?

  4. 4

    如何访问默认帧缓冲区的纹理

  5. 5

    OpenGL:帧缓冲区-绘制纹理-glClearColor

  6. 6

    在帧缓冲区和活动纹理之间形成WebGL反馈循环

  7. 7

    如何在 WebGL 中为输出纹理或帧缓冲区提供偏移量?

  8. 8

    将金属帧缓冲区复制到具有不同像素格式的MTLTexture

  9. 9

    在绘制到帧缓冲区纹理时遇到问题。它画空白

  10. 10

    从当前绑定到帧缓冲区的纹理单元进行OpenGL读取

  11. 11

    glDeleteFramebuffers删除帧缓冲区对象,它是否删除附加到该帧缓冲区的纹理?

  12. 12

    是否可以将纹理作为渲染目标附加到默认帧缓冲区?

  13. 13

    复制并粘贴到帧缓冲区

  14. 14

    LibGDX帧缓冲区

  15. 15

    将反转的场景渲染到帧缓冲区

  16. 16

    WebGL:同时使用纹理和颜色缓冲区

  17. 17

    vim:将缓冲区复制到窗口

  18. 18

    如何在 OpenGL 中重新定位绑定到帧缓冲区的 2D 纹理?

  19. 19

    运行OpenGL着色器以修改现有的纹理/帧缓冲区

  20. 20

    附加到帧缓冲区的OpenGL多样本整数纹理无法正确解析

  21. 21

    使用帧缓冲区渲染为立方体贴图纹理

  22. 22

    为什么从帧缓冲区创建的纹理无法正确映射

  23. 23

    如何从OpenGL中的帧缓冲区纹理中采样像素?

  24. 24

    附加到帧缓冲区的OpenGL多样本整数纹理无法正确解析

  25. 25

    使用帧缓冲区渲染为立方体贴图纹理

  26. 26

    调整大小后是否应将纹理重新附加到帧缓冲区

  27. 27

    如何绘制目标纹理大于屏幕分辨率的帧缓冲区?

  28. 28

    COLOR_ATTACHMENT's-如何在帧缓冲区对象内将多个纹理作为颜色附件渲染?

  29. 29

    将RGBA32F纹理与帧缓冲区一起使用会引发INVALID_ENUM错误

热门标签

归档