如何为WebGL程序重置矩阵统一?

时间:2013-08-05 17:58:42

标签: webgl

我正在尝试重置像这样的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但没有用。

1 个答案:

答案 0 :(得分:1)

如果您知道统一变量的名称和类型,那么为什么要这么做才能做到这一点:

var mat2d = new Float32Array(4); // or identity matrix - new Float32Array([1,0,0,1]); 
myContext.uniformMatrix2fv(uniformLocation, false, mat2d);