7

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

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

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

4

1 回答 1

6

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

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

于 2011-01-24T12:23:21.920 回答