我正在使用带有颜色,深度和模板的FBO来实现延迟着色。
以下是我正在做的事情:
有没有办法可以避免第2步?
也就是说,我可以直接从步骤#3中的步骤#1“重复使用”相同的模板吗?我尝试创建一个仅附加模板的第二个FBO,但是这不起作用 - 我假设b / c附加一个FBO会禁用对颜色后退缓冲区的所有写入。
答案 0 :(得分:1)
不幸的是,GL API实现FBO的方式强制执行这个exrta blit步骤,尽管大多数真实世界的HW可能没有它。如果他们不会为默认缓冲区制作这个特殊的FBO 0,但是对于默认的颜色,深度和模板缓冲区只需要特殊的渲染缓冲区,这样就更好了恕我直言,这样一旦可以在FBO中混合它们(我认为D3D允许这个,但我不确定)。但是目前,我不知道任何GL功能/扩展会允许这样的事情。