【问题标题】:WebGL: Prevent color buffer from being clearedWebGL:防止颜色缓冲区被清除
【发布时间】:2018-03-07 19:28:43
【问题描述】:

即使我删除了

gl.clearColor(c[0],c[1],c[2],1.0);
gl.clear(gl.COLOR_BUFFER_BIT );

屏幕仍然在开始时被清除 下一个抽奖周期。有没有办法防止这种情况。 我想实现某种重绘效果。

【问题讨论】:

  • 您可能正在交换缓冲区,也就是双缓冲。
  • 啊,好的。默认行为是清除绘图缓冲区。它必须通过 WebGLContextAttributes 的 preserveDrawingBuffer 属性禁用。

标签: html webgl


【解决方案1】:

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

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

默认为preserveDrawingBuffer: false,因为在某些情况下它更快。

【讨论】:

  • 它不适用于 alpha:false。 gl = someCanvas.getContext("webgl", { preserveDrawingBuffer: true , alpha:false });
  • “因为在某些情况下它更快。”你能解释一下为什么或什么时候?或者粘贴一些参考资料。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多