6

即使我删除

gl.清除颜色(c[0],c[1],c[2],1.0);gl.清除(gl.COLOR_BUFFER_BIT);

屏幕在开始时仍会被清除下一个绘制周期。有办法防止这种情况吗。我想达到某种叠加效果。

2
  • 您可能正在交换缓冲区,也称为双缓冲区。 评论 2013年1月30日14:36
  • 啊,好的。默认行为是清除绘图缓冲区。它必须通过WebGLContextAttributes的preserveDrawingBuffer属性禁用。 评论 2013年1月30日15:07

1个答案1

重置为默认值
9

创建WebGLRenderingContext时,可以告诉它保留绘图缓冲区。

gl=someCanvas.getContext(“webgl”,{preserveDrawingBuffer:true});

默认值为preserveDrawingBuffer:false因为在某些情况下速度更快。

2
  • 它不适用于alpha:false。gl=someCanvas.getContext(“webgl”,{preserveDrawingBuffer:true,alpha:false}); 评论 2021年8月25日21:21
  • “因为在某些情况下速度更快。”你能解释一下为什么或什么时候吗?或者粘贴一些参考。 评论 2021年9月12日2:52

你的答案

单击“发布您的答案”,表示您同意我们的服务条款并确认您已阅读我们的隐私政策.

不是你想要的答案吗?浏览标记的其他问题问你自己的问题.