【发布时间】:2018-08-06 01:14:50
【问题描述】:
我正在使用 ionic 3 开发一个适用于 android 的应用程序。我有一部分使用 babylon.js,另一部分(彼此不相关)使用 three.js 我在一些设备上测试了该应用程序。 Android 5.1.1 的人无法显示three.js 的东西。它说“不支持 webGL”或类似的东西。另外,如果我尝试document.createElement("canvas").getContext("webgl"),我会得到null。所以到目前为止这是有道理的。
另一方面,Babylon.js 可以毫无问题地显示其 3d 内容。如果我尝试document.createElement("canvas").getContext("webgl"),我也会得到null。但是:如果我尝试engine.webGLversion,我会得到2。
在 Android 6 或 7 上,一切正常。 THREE.js 说它正在使用 webgl 引擎,Babylon 也是如此。我知道 Chrome 的 webview 不允许您在 Android 5.1.1 或更低版本上使用 webgl (???)。无论如何,WebGL 在 Android 6 和 7 上运行良好。document.createElement("canvas").getContext("webgl") 也可以返回。
然后我在我的应用程序上安装了 Crosswalk(添加了黑名单忽略的东西),THREE.js 停止了抱怨,document.createElement("canvas").getContext("webgl") 返回了一个 webGL 上下文。
我还是不知道:
- babylon 有一个画布渲染器,当找不到 webgl 时会回退到它。
- babylon 有一些魔力,并且可以在 Three.js 无法使用时使用 webGL
有人经历过吗?谢谢
【问题讨论】:
标签: three.js webgl ionic3 crosswalk babylonjs