给fbo预先存在的纹理来绘制它



我想知道是否有可能给一个非NULL纹理的帧缓冲区渲染它。我的意思是在它上面画画,这样它就会成为最终纹理的背景。

从我所尝试的只是保持纹理我给和渲染它直接,没有绘图(好像绘图部分已经无用)。如果我给一个NULL纹理,绘图完成。

所以我想知道如果这是可能的,我只是做错了吗?

我看到的所有使用fbo的例子只显示NULL纹理发送。

您尝试做的事情并不像从头呈现FBO附件中的内容那样常见。这就是为什么你找不到那么多的例子。

这仍然是完全合法的,应该可以工作。唯一的区别应该是,你不调用glClear()后,附加纹理到FBO,并开始渲染。

你必须小心的一种情况是,如果你想在原始纹理内容的顶部使用深度缓冲渲染。在这种情况下,你当然需要一个深度缓冲附件(通常是一个渲染缓冲)在你的FBO,像往常一样。在这种情况下,在开始渲染之前,你需要清除深度缓冲,但是不是颜色缓冲:

glClear(GL_DEPTH_BUFFER_BIT);

最新更新