【问题标题】:Getting 'PERFORMANCE WARNING' messages in Chrome在 Chrome 中获取“性能警告”消息
【发布时间】:2012-07-30 19:42:53
【问题描述】:

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

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

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

【问题讨论】:

    标签: webgl three.js


    【解决方案1】:

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

    这不仅是性能上的缺陷,还会导致输出不佳。

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

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

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

    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,但问题应该类似,在着色之前为您的网格提供颜色。

    【讨论】:

      【解决方案2】:

      【讨论】:

      • 是的,我也看到了。奇怪的是,当第一次渲染事物时,一切正常。稍后当添加其他元素时,我开始收到警告。我希望有人遇到同样的问题,并且知道具体是什么原因造成的。我试图避免在添加到场景中的每个元素之后检查警告。我会试一试,然后报告我的发现。
      • 我以为我已经尝试根据我找到的另一个链接删除所有圆柱体,但显然不正确。我发现我目前使用的唯一导致这种情况的元素是圆柱体。我想我会等着看它是否在 Chrome 的未来更新中得到修复,或者我是否可以使用其他元素。使用圆柱体的全部意义在于检测精灵上的碰撞。我无法用射线与精灵相交,所以我用一个看不见的圆柱体围绕着精灵......
      猜你喜欢
      • 1970-01-01
      • 2016-06-15
      • 2011-02-15
      • 1970-01-01
      • 2018-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-31
      相关资源
      最近更新 更多