我一直在使用 WebGL,但似乎我无法再显示纹理了。片段着色器的输出始终为黑色(轮廓可见)。
我知道这个问题可能会出现在不是 2 次方的纹理上。不幸的是我的是(256x256)。此外,我确实让他们在某些时候工作过(但我改变太多以回溯问题)。
编辑:我已经大大简化了我的程序,并且按照 gman 的建议使用了 WebGL Inspector(顺便说一句很棒的提示)。WebGL Inspector 中的纹理看起来不错。当我注意到时,我正要发布整个代码
var textureUniformLocation = gl.getUniformLocation(shaderProgram, "uSampler");
console.log(textureUniformLocation);
gl.activeTexture(gl.TEXTURE0);
gl.bindTexture(gl.TEXTURE_2D, neheTexture);
gl.uniform1i(textureUniformLocation, 0);
不行,加个alert(textureUniformLocation);
afterconsole.log(...)
会让贴图出现……我现在想知道的是:我的显卡是不是吸毒了?
EDIT2:如果我也将一个简单的字符串放入警报中,它将起作用。
我能想到会发生这种情况的唯一原因是糟糕的内存管理或多个执行线程。他们都不是这里的情况。什么样的事情甚至可能在javascript中导致这样的问题?
任何帮助将不胜感激。