WebGL 适用于某些移动平台,但不适用于其他平台

WebGL works on some mobile platforms, but not others

我正在开发一款需要 WebGL 才能正常运行的手机游戏,但 WebGL 仅适用于某些设备。

我有一台 Nexus 10 平板电脑更新到最新的 Android Lollipop。 当我从 Chrome 运行 时,我的游戏使用 WebGL,但是当我使用 cordova 打包游戏时,游戏不使用 WebGL 并且速度非常慢。我也在其他几个设备上测试了该行为:

我也尝试过使用 CrossTalk,但它创建的应用程序从未启动。闪屏之后是黑色背景,没有任何反应。

如何修复或调试 WebGL 在某些设备上无法运行的问题?

我设法让它工作,不使用 WebGL 的主要原因是一些设备在 GPU 中没有特定功能,默认情况下禁用 WebGL。强制使用 WebGL 的唯一方法,你将需要使用 CrossWalk,同时忽略 gpu 黑名单。

首先,我使用以下命令添加了 CrossWalk 插件:

cordova plugin add cordova-plugin-crosswalk-webview

然后我修改了config.xml以包含这部分

<preference name="xwalkCommandLine" value="--ignore-gpu-blacklist" />

我还签署了 APK 以供发布,这使该应用程序正常运行。

添加此首选项会强制我的 Nexus 10 使用 WebGL 并且速度超快。 CrossWalk 也非常快,使应用程序在我的新 BlackBerry Priv 上运行得更好。