Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 创建WebGL纹理会切断一些数据_Javascript_Image Processing_Webgl - Fatal编程技术网

Javascript 创建WebGL纹理会切断一些数据

Javascript 创建WebGL纹理会切断一些数据,javascript,image-processing,webgl,Javascript,Image Processing,Webgl,我正在使用WebGL,并尝试从多个图像中创建纹理,所有图像都由浮点数组表示,然后将其转换为RGBA 这是我的密码: var dataTexture = new Uint8Array(array.length*4); for(var i=0; i<array.length; i+=4) { dataTexture[i] = 255*parseFloat(array[i/4]); dataTexture[i+1] = 255*255*parseFloat(array[i/4])

我正在使用WebGL,并尝试从多个图像中创建纹理,所有图像都由浮点数组表示,然后将其转换为RGBA

这是我的密码:

var dataTexture = new Uint8Array(array.length*4);
for(var i=0; i<array.length; i+=4)
{
    dataTexture[i] = 255*parseFloat(array[i/4]);
    dataTexture[i+1] = 255*255*parseFloat(array[i/4]);
    dataTexture[i+2] = 255*255*255*parseFloat(array[i/4]);
    dataTexture[i+3] = 255;
}

gl.bindTexture(gl.TEXTURE_2D, self.mTexture);
gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 512, 512, 0, gl.RGBA, gl.UNSIGNED_BYTE, dataTexture);      
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);

gl.drawArrays(gl.TRIANGLES, 0, 6);
var dataTexture=新的Uint8Array(array.length*4);

对于(var i=0;i,不清楚您在这里试图做什么

dataTexture[i] = 255*parseFloat(array[i/4]);
dataTexture[i+1] = 255*255*parseFloat(array[i/4]);
dataTexture[i+2] = 255*255*255*parseFloat(array[i/4]);
dataTexture[i+3] = 255;
Uint8Array
元素中可以输入的最大值是255。那么
array
项的范围是多少,因为将它们乘以
65025
,然后再乘以
16581375


还有
数组
是由文本组成的吗?否则为什么要调用parseFloat?

i@LJᛃ 非常感谢!如果你把这个作为答案,我会把它标记为正确的!:)