babylon.js vs three.js on ionic,webgl问题

时间:2018-02-26 14:36:32

标签: three.js webgl ionic3 crosswalk babylonjs

我正在开发一个带有离子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引擎,巴比伦也是如此。我知道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上下文。

我仍然不知道是否:

  1. babylon有一个画布渲染器,当找不到webgl时会退回到它。
  2. babylon有一些神奇的力量,当Three.js不能
  3. 时可以使用webGL

    任何人都经历过同样的事情吗?感谢

1 个答案:

答案 0 :(得分:0)

我至少可以回答问题1:我们选择仅支持Babylon.js中的WebGL上下文,因为使用纯画布模拟硬件加速渲染的成本太高了。