是否可以将默认渲染缓冲区附加到FBO?

时间:2011-01-24 11:57:34

标签: opengl fbo

我正在考虑重构我的渲染代码的一大部分,并且想到了一个问题: 是否可以使用帧缓冲区对象中的多个颜色附件渲染屏幕和纹理?即使它有许多有用的应用程序,我也找不到任何可能的信息。我想它应该足以将我的纹理绑定为颜色attachment0和renderbuffer 0到attachment1?

例如,我想创建一个交互式应用程序,您可以在3D模型上“绘制”。我通过将UV坐标渲染到纹理来解决用户绘制的位置,这样我就可以查看鼠标坐标在哪里修改纹理。在我的情况下,最好有一个着色器,它既可以将UV渲染到纹理,也可以在一次通过中将实际纹理绘制到屏幕上。

有更好的方法可以做到这一点,还是我走在正确的轨道上?

1 个答案:

答案 0 :(得分:6)

OpenGL中没有“默认渲染缓冲区”这样的东西。窗口系统提供默认的帧缓冲区,保留名称为零,但这基本上意味着“没有启用FBO”。所以不,不幸的是,正常的OpenGL没有提供任何方法以某种方式使用其颜色缓冲区作为任何其他FBO的颜色附件。我不知道任何可能提供此功能的扩展程序。

对于渲染缓冲区,还有保留名称为零,但它只是一个特殊的“无”变量,并且允许解除绑定渲染缓冲区。