被RenderingContext.drawElements纠正时,它会清除屏幕它吸引过吗?
考虑这些截图,显示整个调用drawElements与已经绘制的被擦除目标的一个步骤。
被RenderingContext.drawElements纠正时,它会清除屏幕它吸引过吗?
考虑这些截图,显示整个调用drawElements与已经绘制的被擦除目标的一个步骤。
WebGL的有效清除页面已经被合成后的画面。 当你通过东西一条线同时加强它会在每次停车时间进行合成。
如果你不希望它要求清除preserveDrawingBuffer: true
当您创建WebGL的上下文关系中
gl = someCanvas.getContext("webgl", { preserveDrawingBuffer: true });
至于为什么, 从规范
虽然有时需要保留绘制缓冲区,它可能会导致在某些平台上显著的性能损失。 只要有可能,这个标志应该保持虚假和使用其他技术。 像同步绘图缓冲器接入(例如,主叫readPixels或toDataURL在呈现附图缓冲器相同的功能)的技术可用于获得绘制缓冲区的内容。 如果作者需要呈现在一系列的呼叫同一图形缓冲区,可以使用帧缓冲区对象。
实现可以优化掉后绘制缓冲区所需的隐含清除操作,只要保证可以做出笔者无法访问从另一个进程缓冲区的内容。 举例来说,如果作者执行的明确清晰,则隐含清除不需要。
该TL; DR版本preserveDrawingBuffer: false
(默认)允许WebGL的交换合成时的缓冲区(如果它选择,这并不意味着它会交换缓冲,但它可以)。 preserveDrawingBuffer: true
意味着它不能交换缓冲,它必须复制的缓冲区。 复制是比交换慢得多。