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

时间:2016-12-30 04:37:57

标签: android cordova google-chrome webgl chromium

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

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

  • WebGL作品:
    • 三星Galaxy S5(4.4.4)
    • Blackberry Priv(6.0.1)
  • WebGL不起作用
    • Nexus 10(5.1.1)
    • 三星Galaxy S3(4.3)
    • iPad mini 1(9.3.5)
    • 三星Galaxy Tab 3(4.4.2)

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

如何修复或调试WebGL在某些设备上不起作用的问题?

1 个答案:

答案 0 :(得分:2)

我设法让它工作,不使用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能够更好地运行应用程序。