OpenGL:将源FBO的不规则(非方形)部分复制到目标FBO
我正在做2D渲染,我正在使用FBO。我需要将源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中的示例:我已经尝试过了,但没
所以,作为最简单的例子,我想从主fbo中提取圆形部分(或多边形),在其上绘制一些图形,然后将其拉伸回主fbo。它就像圆形(或多边形)放大镜。您可以使用模板遮罩。请参见OpenGL wiki中的示例:我已经尝试过了,但没有成功。可能是我做错了。你确定这应该适用于FBO吗?顺便问一下,你是如何复制FBO的?模具测试不适用于
glBlitFramebuffer(…)
之类的对象。为了做到这一点,你需要画一个全屏的四元组,在视口上拉伸颜色/深度缓冲区。我更新了这个问题以提供更多细节。谢谢大家。使用glBlitFramebuffer
是无法做到的。你必须按照Andon所说的做,在缓冲区上渲染一个全屏四边形。在临时FBO的颜色附件上附加一个纹理。渲染到临时FBO后,绑定该纹理,设置着色器以从中采样,然后在屏幕上绘制一个四边形以“复制”数据。要绘制四边形,只需绘制一个角位于和的长方体,而不进行任何变换。