WebGL 何时决定更新显示?

9
在传统的OpenGL应用程序中,当我们完成渲染一帧后,通常会调用一个非OpenGL方法将窗口缓冲区"翻转"到当前帧。
但是在WebGL中,我没有看到相关内容。它是如何工作的?
1个回答

18

WebGL始终是后备缓冲区,并且每当您退出到事件循环时,浏览器都会将后备缓冲区的当前内容推送到前置缓冲区。

因此,您可以执行任意数量的绘图命令而不必担心向用户显示部分结果。当您退出事件循环时,WebGL将呈现您所做的更改并清除后备缓冲区。

如果您希望,您还可以像具有单个缓冲区一样操作,通过在创建WebGL上下文时传递preserveDrawingBuffer: true来随时根据适当的操作提示进行部分更新。

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

以下是两个例子,没有保留绘图缓冲区有保留绘图缓冲区


非常感谢!我很久以前就在找这个了! - fernandojsg

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接