1

我正在尝试像这样重置 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

的 size 属性是否uniformInformation意味着除字节大小之外的其他内容?我也试过拿出来/ 4,但无济于事。

4

1 回答 1

1

如果您知道统一变量的名称和类型,那么当您可以这样做时,为什么要这么难:

var mat2d = new Float32Array(4); // or identity matrix - new Float32Array([1,0,0,1]); 
myContext.uniformMatrix2fv(uniformLocation, false, mat2d);
于 2013-08-06T10:58:52.977 回答