因此,我试图找出我可以使用webgl在纹理中更改200个单独像素(每个像素具有独特颜色和位置)的最快方法。
是否可以将坐标和颜色值传递给着色器,以便它可以一次完成?或者是否存在一些阻止能够做到这一点的限制?
答案 0 :(得分:0)
WaclawJasper建议使用.texSubImage2D, 这就是我如何使用它。
var dataTypedArray = new Uint8Array(4); // Don't need to do this if the data is already in a typed array
dataTypedArray[0] = 0;
dataTypedArray[1] = 0;
dataTypedArray[2] = 255;
dataTypedArray[3] = 255;
gl.bindTexture(gl.TEXTURE_2D, texture);
gl.texSubImage2D(gl.TEXTURE_2D, 0, posX, posY, 1, 1, gl.RGBA, gl.UNSIGNED_BYTE, dataTypedArray);