Three.js - 没有纹理绑定到单位0错误

Chr*_*ues 6 javascript google-chrome opengl-es webgl three.js

从今天的Chrome更新(版本50.0.2661.86(64位)OSX)开始,我的基于three.js的应用程序开始输出此警告:

[.CommandBufferContext]RENDER WARNING: there is no texture bound to the unit 0

并且应用程序不再加载(它只是卡在加载屏幕中).

为了给出这个错误的奇怪的上下文,我们用纹理+法线贴图实例化网格,并且有一个奇怪的行为,其中: - 如果我们加载应用程序崩溃的所有实例 - 如果我们加载更少的实例,应用程序加载

有关信息,我们在材质创建回调中加载所有纹理,因此之前的Stackoverflow答案提供有关此问题的解决方案并不真正起作用.

有没有人知道我们可以改变什么来使这项工作?或者我们应该向Chromium团队开一张报告问题的门票吗?

它在今天的更新之前完美运行.

小智 1

如果您添加:

this.image = image; // retain a reference to the object to prevent garbage collection
Run Code Online (Sandbox Code Playgroud)

在 Three.js (r76) 的第 18419 行之后,它还将纠正最新版本 Chrome 中的 TextureLoader 挂起问题。

  • 我认为这不是一个好的答案。您没有提供任何上下文,这使得除了拥有 Three.js (r76) 的人之外的任何人都无法解决问题。 (8认同)
  • 我很关心,因为我是因为另一个产品(openjscad.org)中出现类似的错误消息而来到这里的。了解造成这种情况的原因、哪个组件出现故障以及再次发生这种情况时如何排除故障将非常有价值。 (2认同)