Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
OpenGL:将源FBO的不规则(非方形)部分复制到目标FBO_Opengl_Framebuffer_Fbo - Fatal编程技术网

OpenGL:将源FBO的不规则(非方形)部分复制到目标FBO

OpenGL:将源FBO的不规则(非方形)部分复制到目标FBO,opengl,framebuffer,fbo,Opengl,Framebuffer,Fbo,我正在做2D渲染,我正在使用FBO。我需要将源FBO的不规则(非方形)部分复制到目标FBO 有没有办法通过使用一些遮罩来达到这个目的 我现在做的是: 将主FBO的一部分复制到临时FBO 在临时FBO上做一些绘图 GLBLITFRAMEBUSTER temp FBO返回主FBO拉伸 所以,作为最简单的例子,我想从主fbo中提取圆形部分(或多边形),在其上绘制一些图形,然后将其拉伸回主fbo。它就像圆形(或多边形)放大镜。您可以使用模板遮罩。请参见OpenGL wiki中的示例:我已经尝试过了,但没

我正在做2D渲染,我正在使用FBO。我需要将源FBO的不规则(非方形)部分复制到目标FBO

有没有办法通过使用一些遮罩来达到这个目的

我现在做的是:

  • 将主FBO的一部分复制到临时FBO
  • 在临时FBO上做一些绘图
  • GLBLITFRAMEBUSTER temp FBO返回主FBO拉伸

  • 所以,作为最简单的例子,我想从主fbo中提取圆形部分(或多边形),在其上绘制一些图形,然后将其拉伸回主fbo。它就像圆形(或多边形)放大镜。

    您可以使用模板遮罩。请参见OpenGL wiki中的示例:

    我已经尝试过了,但没有成功。可能是我做错了。你确定这应该适用于FBO吗?顺便问一下,你是如何复制FBO的?模具测试不适用于
    glBlitFramebuffer(…)
    之类的对象。为了做到这一点,你需要画一个全屏的四元组,在视口上拉伸颜色/深度缓冲区。我更新了这个问题以提供更多细节。谢谢大家。使用
    glBlitFramebuffer
    是无法做到的。你必须按照Andon所说的做,在缓冲区上渲染一个全屏四边形。在临时FBO的颜色附件上附加一个纹理。渲染到临时FBO后,绑定该纹理,设置着色器以从中采样,然后在屏幕上绘制一个四边形以“复制”数据。要绘制四边形,只需绘制一个角位于和的长方体,而不进行任何变换。