我正在用PIXI.js为桌面设备开发一个游戏。PIXI提供了WebGL和画布渲染器,我们将在设备支持的任何地方使用WebGL。
我的问题是,一些低端设备在技术上支持WebGL,尽管它运行不好,因为GPU速度慢。在某些情况下,画布呈现会执行得更好。
如何在运行时决定使用哪个渲染器?
也许WebGL上下文包含一些有用的信息。
发布于 2015-09-07 13:00:44
官方方法是在上下文创建时使用failIfMajorPerformanceCaveat
标志。下面是到规范的链接,说明它应该如何工作:https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.2.1
它在Chrome上支持了一段时间(我认为从2013年开始),所以它很可能排除了一些“缓慢”的实现。
坏消息是,在编写PixiJS时,似乎仍然不能将任意参数传递给WebGL上下文创建。我还没有重新检查过,但这方面的问题尚未正式结束:https://github.com/pixijs/pixi.js/issues/1738
因此,您必须劫持PixiJS代码或手动创建web上下文。
当然,并不是每个浏览器都支持这个相对新的标志。
如果稳定性比性能更重要,另一种选择是在4.4之前完全禁用本地安卓浏览器的WebGL,而Chrome是正式推出的。这将排除旧的自定义WebGL实现(例如Sony )。
就我个人而言,我不愿意在应用程序开始时进行压力测试,以选择渲染实现。性能上的小故障/尖峰可能会导致切换到完全好的硬件上。但是如果你想走这条路,这里有一个关于在PIXI实现它的讨论:http://www.html5gamedevs.com/topic/1733-detect-performance-issues-to-display-a-message/
https://stackoverflow.com/questions/32399082
复制相似问题