2

我最近才开始收到这些消息,想知道是否有人看过它们,或者知道是什么原因造成的。我在 MacOS 上使用 Chrome 版本“21.0.1180.57”的 Three.js。我没有通过 Safari 或 FireFox 收到这些消息。

性能警告:属性 0 已禁用。这有显着的性能损失

WebGL:错误太多,不会再向控制台报告此上下文的错误。

4

2 回答 2

3

Firefox 上的相同消息是:“错误:WebGL:未启用顶点属性 0 数组的绘图会强制浏览器在桌面 OpenGL 平台上(例如在 Mac 上)运行时进行昂贵的仿真工作。最好始终在启用顶点属性 0 数组的情况下进行绘制,通过使用 bindAttribLocation 将一些始终使用的属性绑定到位置 0。"

这不仅是性能上的缺陷,而且还会导致糟糕的输出。

问题:如果 JS 尝试在不提供颜色数组的网格上运行期望 gl_Color 中的颜色信息的 WebGL 着色器,则会出现此消息。

解决方案:使用具有恒定颜色的 WebGL 着色器而不访问 gl_Color 或在要着色的网格中提供颜色数组。

如果使用来自 Evan Wallace 的 lightgl.js,请尝试colors:truenew GL.Mesh语句中添加选项并提供与您的数组mesh.colors大小相同的适当vertices数组。或者试试这个着色器:

blackShader = new GL.Shader(
  'void main() { gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; }',
  'void main() { gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0); }'
);

抱歉,我从未使用过 Three.js,但问题应该类似,在着色之前为您的网格提供颜色。

于 2013-03-31T18:41:02.870 回答
0

看起来像一个 Chrome 错误:

http://code.google.com/p/chromium-os/issues/detail?id=32528

于 2012-08-02T10:52:24.433 回答