0

我有一个现有的帧缓冲区(带有颜色和深度信息),需要与画布的后缓冲区(绘图缓冲区)合成。如何将一个帧缓冲区中的内容绘制到后缓冲区中?

或者,如果有直接操作绘图缓冲区的方法,我可以将我的信息直接放入其中,而无需创建第二个帧缓冲区。现在写我正在使用以下方法将纹理写入帧缓冲区:

gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, texture, 0);

但这不适用于绘图缓冲区,因为当 gl.FRAMEBUFFER 未绑定时它会引发错误(而且我不知道将其绑定到绘图缓冲区的方法)。

4

1 回答 1

0

要从主屏幕缓冲区中获取数据,您需要将其数据 copyTexImage2D 到另一个纹理。

还要注意您是否使用设置为 true 的“preserveDrawingBuffer”构建了 WebGL 上下文的问题。上下文创建的默认值为 false,这意味着在绘制后将控制权返回给浏览器后,您不能指望主绘制缓冲区的内容仍然存在。

设置 preserveDrawingBuffer=false 通常是个好主意,因为它会对性能产生重大影响。

于 2013-11-05T22:16:05.743 回答