0

对于出色的playcanvas游戏引擎,是否有任何已知的 2D 画布后备实现?

这个想法是,系统应该在 WebGL 与 Canvas 2D 的加载过程中测试渲染性能,并回退到 Canvas 2D,以防它在浏览器中不支持 WebGL 的情况下发现更好的性能。

其他框架three.jspixijs有这个功能,这对playcanvas来说会很棒,但只要我看到他们没有这个功能,社区也没有实施任何解决方案。

4

2 回答 2

4

不,PlayCanvas 没有 Canvas 2D 后备。

首先,Canvas 2D 永远不会比 WebGL 更快地渲染 3D 场景。这是因为您必须将复杂的 GPU 任务转移到 CPU 上。PlayCanvas 实现了一个非常复杂的物理渲染管道,并且在 CPU 端重新实现它永远不会提供可接受的性能。这对 Pixi 来说更有意义,因为 Pixi 主要关注 2D 精灵图元,这些图元可以通过 Canvas 2D 非常便宜地渲染。

在撰写本文时,WebGL 的渗透率为 91.1%,且趋势仍在上升。因此,您现在有一小部分人无法体验 WebGL。

在用户无法运行 WebGL 的情况下(无论出于何种原因,例如运行 IE9 及更低版本),建议只是显示一条消息,要求升级到支持 WebGL 的浏览器。

于 2015-10-25T20:43:47.133 回答
1

如果没有 webgl,这个回退到画布是一个非常边缘的功能,也许这就是为什么几乎没有实现它的原因。也许它在 webgl 支持非常有限之前很有用,但我认为 atm 不太需要它。原因如下:

如果 canvas api 满足您的所有要求,那么编写 webgl 应用程序来做与 canvas api 相同的事情就没有什么意义了。

如果需要/需要 webgl 功能,例如 3D,或者只是需要绘制许多具有不同比例/旋转的精灵,那么画布性能可能达不到标准。此外,浏览器(我上次检查)的画布性能非常不一致。这也是我最初编写 webgl 渲染器的动力。

于 2015-10-24T05:28:29.457 回答