【问题标题】:WebGL texture failureWebGL 纹理失败
【发布时间】:2013-09-17 15:09:17
【问题描述】:

当 chrome 更新到他的最新版本时,我的 WebGL 应用程序不再工作...... 模型只是黑色的,因为不会加载纹理。

这是失败消息。纹理都是2的幂,所以我不知道问题出在哪里。它适用于 Chrome 版本 28.0.1500.72 m

GL_INVALID_ENUM : glActiveTexture: texture was GL_LINE_LOOP 


 WebGL: drawArrays: texture bound to texture unit 2 is not renderable.  

它可能不是 2 的幂并且具有不兼容的纹理 过滤或不是“纹理完整”。或者纹理是 Float 或 具有线性滤波的半浮点类型,而 OES_float_linear 或 OES_half_float_linear 扩展未启用。

我的抽奖电话

   // draw the Triangles

   gl.drawElements(gl.TRIANGLES, Model.TriangleCount, gl.UNSIGNED_SHORT, 0);

【问题讨论】:

    标签: google-chrome webgl


    【解决方案1】:

    我设法解决了这个问题。

    解决方法是查询另一个扩展:oes_texture_float_linear; http://www.khronos.org/registry/gles/extensions/OES/OES_texture_float_linear.txt 它为浮动纹理添加了过滤器,现在代码又可以工作了。

    【讨论】:

      【解决方案2】:

      你能告诉我们部分代码吗?

      你有这样的东西吗:(?)

      gl.activeTexture(gl.TEXTURE0);
      gl.bindTexture(gl.TEXTURE_2D, ...);
      

      请阅读:

      GL_INVALID_ENUM is generated if texture is not one of GL_TEXTUREi, where i ranges from 0 to (GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS - 1).
      

      这里很少说“不可渲染”

      https://twitter.com/mrdoob/status/346950885039030273

      你使用压缩纹理吗?

      【讨论】:

        猜你喜欢
        • 2016-08-28
        • 2012-02-21
        • 2013-11-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-09-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多