google-chrome - 在 Chrome 但在 Android 浏览器中创建 WebGL 上下文时出错

标签 google-chrome three.js

我使用 Three.js 构建了一个非常简单的 Web GL 站点它显示了一个旋转的立方体。当我通过默认的 android 浏览器在我的 Android 手机上运行该网站时,该网站运行良好。但是,当我使用 Chrome 时,我看到了错误:

Error creating WebGL context
THREE.WebGLRenderer
Uncaught TypeError: Cannot read property 'getShaderPrecisionFormat' of null

我使用 Chrome v40.0.2214.109 和 Android 4.1.2。我也尝试使用 Chrome Beta 并看到同样的错误。我需要该站点在 Android 上的 Chrome 上运行,以便能够在桌面上使用 Chrome 开发人员工具。有任何想法吗?

更新

当我去 http://get.webgl.org/在 Android 版 Chrome 中,我收到以下消息:
Hmm. While your browser seems to support WebGL, it is disabled or unavailable.

然后,我在 Chrome for Android 中访问 about:flags,发现默认情况下禁用了 WebGL。我启用并重新启动,但我仍然看到“嗯。虽然您的浏览器似乎支持 WebGL ...”。我尝试启用其他标志但无济于事。最终,我在 Chrome for Android 中启用了每个标志,但我仍然看到上面的消息。上面的链接在 Android 浏览器和 Firefox for Android 中完美运行。谁能解释为什么 WebGL 不能在 Android v4.1.2 上与 Chrome for Android 一起使用?

最佳答案

Chrome 对某些设备有一个黑名单,并且不会让渲染在此类芯片组上正常工作。
https://www.khronos.org/webgl/wiki/BlacklistsAndWhitelists#Chrome_on_Android
您应该已经添加了您在问题中使用的 gpu。
顺便说一句,我有一个带有股票浏览器版本 4.1.2 的 android 设备,它可以完美运行。
忘记 chrome,我对 webgl 的体验真的很消极。
我不会在移动设备和台式机上都推荐它。
此外,如果您的演示在股票浏览器上运行,它们将在其他任何地方运行,因此我认为使用它进行开发会更好。
直到今天(2015 年 7 月 14 日),情况没有改变,甚至 Firefox 更好。

编辑:您可以尝试在 Chrome Dev for android 中激活一些标志来强制使用 WebGL,但如果您碰巧在 Mali400 或 PowerVR SGX 540 上,即使激活了这些标志,您也不会有任何运气。

关于google-chrome - 在 Chrome 但在 Android 浏览器中创建 WebGL 上下文时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28466387/

相关文章:

java - Selenium 将文本发送到密码字段

android - SSL 证书不受信任 - 仅在移动设备上

google-chrome - 从 native 主机向浏览器扩展发送消息时获取 "Error when communicating with the native messaging host."(Windows)

javascript - 当鼠标重新进入 Canvas 时平滑的相机转换 - Three.js

javascript - 如何解决 Three.js 游戏中随着时间的推移出现的滞后问题

math - 在 GL ES 中将片段着色器渐变结果从黑色转换为透明

css - 无法加载资源:CDN 上的 net::ERR_CONNECTION_RESET

javascript - 在 IE 11 中工作但无法在 Google Chrome 中工作 - 使用 jquery 下载 Excel 文件

javascript - Three.js 3D模型在应用纹理后消失

three.js - 对选定网格进行后处理