playcanvas 2D 对 WebGL 支持不佳或不支持的回退

playcanvas 2D fallback for bad or no WebGL support

是否有任何已知的 2D canvas 备用 playcanvas 游戏引擎的实现?

这个想法是系统应该在 WebGL 和 Canvas 2D 的加载过程中测试渲染性能,然后回退到 Canvas 2D 以防它在 cas WebGL 中找到更好的性能浏览器不支持。

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

如果没有 webgl,则回退到 canvas 是一个非常边缘的功能,也许这就是为什么很少有人希望实现它。也许它在 webgl 支持极其有限之前很有用,但我认为 atm 对它的需求不大。原因如下:

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

如果 webgl 特征是 desired/required,例如 3D,或者只是需要绘制许多具有不同 scale/rotations 的精灵,那么 canvas 性能可能达不到标准。此外,浏览器(我上次检查时)的性能非常不一致 canvas。这就是促使我首先编写 webgl 渲染器的原因。

不,PlayCanvas 没有 Canvas 2D 回退。

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

非常便宜地渲染。

在撰写本文时,WebGL has a penetration of 91.1% 趋势仍在上升。因此,目前无法体验 WebGL 的人相对较少。

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