gpt4 book ai didi

javascript - 在 webgl 中切换 Canvas 是否会像桌面 opengl 一样强加 'context switch overhead' ?

转载 作者:行者123 更新时间:2023-12-03 03:00:56 28 4
gpt4 key购买 nike

在桌面 OpenGL 中,众所周知,切换上下文会导致一些开销损失,特别是您必须重新加载/重新绑定(bind)内存中的某些对象(纹理等)。

当您在 WebGL 中的不同 Canvas 元素之间切换时,是否会发生相同的上下文切换惩罚?是否有任何 webgl 对象可以在一个页面上的 canvas 元素之间共享?

最佳答案

没有可以跨 Canvas 共享的 WebGL 对象。有一些解决方案可以通过使用一个大 Canvas 来使其看起来有多个 Canvas ,如果 Canvas 需要共享 WebGL 对象,这是一种解决方案。 WebGL example , three.js example .

至少在 Chrome 中,我不希望在 Canvas 之间切换绘图时产生任何开销。首先,每帧每个 Canvas 在 Canvas 之间切换的次数不可能超过一次。如果您的 Canvas 全部在屏幕上,则上述解决方案将覆盖它们。如果它们更加分开(例如您必须滚动才能看到更多 Canvas ),则 a solution like this会减少开关的数量。但在大多数驱动程序上,开销很小。

关于javascript - 在 webgl 中切换 Canvas 是否会像桌面 opengl 一样强加 'context switch overhead' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47394720/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com