我对webGL有一个奇怪的问题。我正在使用仅Alpha通道重要的动态生成的纹理。这是代码:var texture = new Uint8Array(ar); // ar is my arraygl.bindTexture(gl.TEXTURE_2D, this.transparencyTexture);gl.texImage2D(gl.TEXTURE_2D, 0, gl.ALPHA, array.length, array[0].length, 0, gl.ALPHA, gl.UNSIGNED_BYTE, texture);gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);我一直在使用POT阵列的“宽度”和“高度”,但是无论何时“宽度” “高度”都不起作用。因此,它目前仅适用于正方形。该怎么办?编辑:http://jsfiddle.net/SergeJcqmn/EAmjU/9/ 最佳答案 在jsfiddle中,js的第76行不正确:ar.push(array[x][(array.length - 1) - y] ? 128 : 0);我相信这应该是:ar.push(array[x][(array[0].length - 1) - y] ? 128 : 0);关于javascript - WebGL:数据转换为非方形alpha纹理,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15190313/ 10-11 11:58