我正在开发一个带有离子3的安卓应用程序,我有一部分使用babylon.js,另一部分(互不相关)使用three.js,我在一些设备上测试了这个应用程序。那些使用Android5.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不允许你在Android5.1.1或更低的版本(?)上使用webgl。无论如何,WebGL在Android6和7上运行得很好,document.createElement("canvas").getContext("webgl")也会返回ok。
然后我在我的应用程序上安装了人行横道(添加黑名单忽略的东西),THREE.js停止了抱怨,document.createElement("canvas").getContext("webgl")返回了webGL上下文。
我还是不知道:
有人经历过同样的事吗?谢谢
发布于 2018-03-21 16:51:40
我至少可以回答问题1:我们选择只支持Babylon.js中的Babylon.js上下文,因为使用纯画布模拟硬件加速渲染的成本太高了。
https://stackoverflow.com/questions/48990918
复制相似问题