在传统的OpenGL应用程序中,当我们完成渲染一帧后,通常会调用一个非OpenGL方法将窗口缓冲区"翻转"到当前帧。
但是在WebGL中,我没有看到相关内容。它是如何工作的?
但是在WebGL中,我没有看到相关内容。它是如何工作的?
WebGL始终是后备缓冲区,并且每当您退出到事件循环时,浏览器都会将后备缓冲区的当前内容推送到前置缓冲区。
因此,您可以执行任意数量的绘图命令而不必担心向用户显示部分结果。当您退出事件循环时,WebGL将呈现您所做的更改并清除后备缓冲区。
如果您希望,您还可以像具有单个缓冲区一样操作,通过在创建WebGL上下文时传递preserveDrawingBuffer: true来随时根据适当的操作提示进行部分更新。
gl = somecanvas.getContext("webgl", {preserveDrawingBuffer: true});