我最近才开始收到这些消息,想知道是否有人看过它们,或者知道是什么原因造成的。我在 MacOS 上使用 Chrome 版本“21.0.1180.57”的 Three.js。我没有通过 Safari 或 FireFox 收到这些消息。
性能警告:属性 0 已禁用。这有显着的性能损失
WebGL:错误太多,不会再向控制台报告此上下文的错误。
Firefox 上的相同消息是:“错误:WebGL:未启用顶点属性 0 数组的绘图会强制浏览器在桌面 OpenGL 平台上(例如在 Mac 上)运行时进行昂贵的仿真工作。最好始终在启用顶点属性 0 数组的情况下进行绘制,通过使用 bindAttribLocation 将一些始终使用的属性绑定到位置 0。"
这不仅是性能上的缺陷,而且还会导致糟糕的输出。
问题:如果 JS 尝试在不提供颜色数组的网格上运行期望 gl_Color 中的颜色信息的 WebGL 着色器,则会出现此消息。
解决方案:使用具有恒定颜色的 WebGL 着色器而不访问 gl_Color 或在要着色的网格中提供颜色数组。
如果使用来自 Evan Wallace 的 lightgl.js,请尝试colors:true
在new 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,但问题应该类似,在着色之前为您的网格提供颜色。
看起来像一个 Chrome 错误: