如何在p5.js中从像素数组快速设置Uniform纹理?

问题描述

我有像素数组

arr8 = new Uint8Array(width*height*4);
arr32f = new Float32Array(width*height); 

并且我想将其发送到着色器的

uniform sampler2D tex;

但是p5.js函数.setUniform('tex',img);似乎只接受图片(并且仅接受rgba),我发现将其他副本复制到图片中的唯一方法

img = createImage(width,height);
......
img.loadPixels();
    for(let n=0;n<height*width;n+=4){
        img.pixels[n] = arr8[n];
        img.pixels[n + 1] = ...;
        img.pixels[n + 2] = ...;
        img.pixels[n + 3] = ...;
    }
img.updatePixels();
myShader.setUniform('tex',img);

但是我想在p5.js中提供更快的方式,例如

gl.texImage2D(gl.TEXTURE_2D,gl.luminance,width,height,gl.FLOAT,new Float32Array(arr32f));

或至少对于RGBA格式

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)