我正在尝试重置像这样的WebGL程序的2vfloat矩阵。
var uniformInformation = myContext.getActiveUniform(myProgram, 8);
var uniformLocation = myContext.getUniformLocation(myProgram, uniformInformation.name);
myContext.uniformMatrix2fv(uniformLocation, false, new Float32Array(uniformInformation.size / 4));
但是,当我这样做时,我收到以下错误:
WebGL: INVALID_VALUE: uniformMatrix2fv: invalid size
uniformInformation
的size属性是否意味着大小以字节为单位?我也试过取出/ 4
但没有用。
答案 0 :(得分:1)
如果您知道统一变量的名称和类型,那么为什么要这么做才能做到这一点:
var mat2d = new Float32Array(4); // or identity matrix - new Float32Array([1,0,0,1]);
myContext.uniformMatrix2fv(uniformLocation, false, mat2d);