我对webGL有一个奇怪的问题。
我正在使用动态生成的纹理,其中只有alpha通道很重要。 这是代码:
var texture = new Uint8Array(ar); // ar is my array
gl.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数组'“width”和“height”但是每当“width”<> “高度”它不起作用。所以它目前只适用于正方形。
可以做些什么?
编辑:
答案 0 :(得分:1)
在jsfiddle中,js的第76行不正确:
ar.push(array[x][(array.length - 1) - y] ? 128 : 0);
我相信这应该是:
ar.push(array[x][(array[0].length - 1) - y] ? 128 : 0);