创建WebGL上下文时出错。Three.js在Chrome中可用吗?

16
我遇到了一个错误。
Error creating WebGL context.
Uncaught TypeError: Cannot read property 'getExtension' of null

这是在Google Chrome 71上发生的问题,但我觉得很奇怪,因为如果我打开开发工具并刷新页面,它就能正常工作。我对导致这个问题感到困惑,有什么想法吗?
直到今天为止,它一直完全正常,电脑和浏览器都没有进行任何更改。我的驱动程序都是最新的,WebGL也已启用...
12个回答

11
如果您的系统上安装了两个GPU,您可能想尝试在chrome://flags/中启用 覆盖软件渲染列表

1
这对我很有帮助! 我没有两个GPU,只是在Debian虚拟机中运行chromium,这解决了问题! - AnonBird
2
这对我来说很有用!现在Pixlr可以工作了。 - Jari Turkia
对我有用。即使禁用后仍然有效。 - Ronald C

9
显然这是一个浏览器和显卡的问题。
mrdoob说:显卡只是导致上下文无法创建的原因之一。

https://github.com/mrdoob/three.js/issues/4927

这似乎是为什么除非其他人有其他想法... 问题还在持续中,没有解决。不过,了解为什么会发生这种情况以及为什么打开开发工具并刷新可以解决我的问题会很有趣。
显然,对我来说,这是因为我的显卡被列入黑名单,因为它太旧了。

2
我在Chrome中遇到了这个错误:“THREE.WebGLRenderer:创建WebGL上下文时出错。”但在Firefox中它可以正常工作。 - Intervalia
1
一样的问题。在Firefox中可以正常工作,但在Chrome中不行。我的Macbook Pro比较老,只有集成显卡,但以前从未出现过问题。 - lowkey

5
我的解决方案是在Chrome的功能标志下手动启用WebGL加速:chrome://flags/。

4

我在使用THREE.js时,遇到了几次这种情况。它会在共享内存资源、被遗弃或超负荷时出现,例如:

  1. 我有一个很好的渲染循环,但是当我引入长时间任务时,问题就出现了。
  2. 我进行广泛而连续的测试。当我在Chrome Inspector中修改实时设置时,THREE不总是能够反映所有更改。除非我重新启动程序,否则内存可能无法释放。
  3. 让程序在后台运行过夜。第二天早上,浏览器崩溃了,屏幕变黑,OOM......
  4. 我使用多个资源实例,例如Web Audio和Magenta Music。质量可能会受到感知的降低,并抛出自己的错误,但是……我也会遇到更糟糕的静默错误。例如,当我在另一个选项卡中播放音乐或在Twitter上点击音频/视频媒体时......浏览器冻结,屏幕变黑,WebGL上下文丢失。

2

我只是想评论一下,我看到这个是因为我的应用程序出现了其他无关的错误,这些错误首先被抛出。


2

我更新了显卡驱动程序(NVIDIA),但没有重新启动Chrome或PC,然后出现了这个问题。

我刚刚重新启动了电脑,现在一切正常。


1

在three.js.min ver 93中创建webGL上下文时出现错误。 我在Chrome版本104.5112.102上遇到了同样的问题,并通过进入Chrome设置并关闭“启用硬件加速”来解决它。 显卡是一张旧的GE Force 8600卡,运行在Windows 10上。


对我来说很有效。谢谢。 - Syed Mohammad Yasir

1
  1. 打开你的chrome://settings/
  2. 点击左侧面板上的系统
  3. 打开“启用可用时使用硬件加速”
  4. 点击“重新启动”

祝你好运!


0

对我来说,我重启了电脑,错误就没有再出现了。在尝试更复杂的操作之前,你可以试着这样做。


0

我清除了Chrome的缓存,之后它就正常加载了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接