WebGL纹理失败

时间:2013-09-16 10:15:06

标签: google-chrome webgl

当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);

2 个答案:

答案 0 :(得分:1)

我设法解决了这个问题。

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

答案 1 :(得分:0)

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

你有这样的事情:(?)

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

你使用压缩纹理吗?