【问题标题】:WebGL works on some mobile platforms, but not othersWebGL 适用于某些移动平台,但不适用于其他平台
【发布时间】:2017-05-14 10:16:38
【问题描述】:

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

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

  • WebGL 工作原理:
    • 三星 Galaxy S5 (4.4.4)
    • 黑莓隐私 (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 无法在某些设备上运行的问题?

【问题讨论】:

    标签: android cordova google-chrome webgl chromium


    【解决方案1】:

    我设法让它工作,不使用 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 上运行得更好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-04-24
      • 2020-08-03
      • 1970-01-01
      • 2023-03-14
      • 1970-01-01
      • 1970-01-01
      • 2020-05-24
      相关资源
      最近更新 更多