Opengl 为什么gdebugger在渲染到FBO时更新纹理查看器中的多个纹理?

Opengl 为什么gdebugger在渲染到FBO时更新纹理查看器中的多个纹理?,opengl,Opengl,我现在在格德布格遇到了一个非常奇怪和令人沮丧的问题,我希望有人能看到我做错了什么 作为一点背景信息,在我的代码中,我有一堆FBO,以完成以下类型的场景: -我绑定了一个FBO来渲染纹理中的一些东西,以便在该纹理上的某个点运行后期处理着色器 -在完成该FBO之前,我将另一个FBO推到堆栈上并绑定该FBO,以便我可以将一些内容渲染到该纹理,在其上运行后期处理着色器,然后将该FBO纹理的内容渲染到原始FBO上 虽然从功能上来说,这很好,但在gDebugger中调试它已被证明是一场噩梦,因为出于某种原因

我现在在格德布格遇到了一个非常奇怪和令人沮丧的问题,我希望有人能看到我做错了什么

作为一点背景信息,在我的代码中,我有一堆FBO,以完成以下类型的场景:

-我绑定了一个FBO来渲染纹理中的一些东西,以便在该纹理上的某个点运行后期处理着色器

-在完成该FBO之前,我将另一个FBO推到堆栈上并绑定该FBO,以便我可以将一些内容渲染到该纹理,在其上运行后期处理着色器,然后将该FBO纹理的内容渲染到原始FBO上

虽然从功能上来说,这很好,但在gDebugger中调试它已被证明是一场噩梦,因为出于某种原因,每当我向FBO渲染任何内容时,gDebugger都会显示多个纹理正在更新

我附上了一些图片来解释:

在这里的第一个例子中,Tex 1是一种深度/模具纹理,我在所有FBO中都使用它。不过,作为补充说明,我在没有将深度/模具纹理附加到FBO时测试了同样的问题,但这种情况仍然存在,所以我不认为这是一个因素。Tex 2是附加到FBO 1的纹理,Tex 3是附加到FBO 2的纹理。此时,FBO 1已绑定。尽管如此,无论何时渲染任何内容,它都会更新纹理3 FBO 2

正如您在该图像中看到的,单次绘制的结果,FBO 1已按预期更新,但FBO 2也已更新。

现在即使这样也没那么糟糕——毕竟,我现在没有使用FBO2,谁在乎gDebugger是否会更新纹理呢?真正的问题是,如果我绑定FBO 2并清除其颜色缓冲区,gDebugger也会清除FBO 1纹理2!如果我渲染到FBO 2,FBO 1也会渲染到

正如我在上面提到的,尽管有这种奇怪的行为,但实际上所有的功能都按照预期工作。也就是说,在清除FBO 2表明FBO 1也被清除的情况下,它实际上不会被清除。但是,当各种FBO中的图像信息似乎不准确时,尝试调试问题几乎是不可能的

那么,我做错什么了吗?还是有办法在gDebugger中解决这个问题

提前谢谢

瑞安