WebGL中的mat3属性

时间:2014-12-06 00:34:30

标签: opengl-es webgl webgl-extensions

我试图在WebGL中使用ANGLE_instanced_arrays扩展来渲染具有不同mat3转换矩阵的对象的多个实例。这是与我的矩阵的缓冲区相关的代码:

//setup
this.shaderProgram.transformAttribute = gl.getAttribLocation(this.shaderProgram, "transform");
ext.vertexAttribDivisorANGLE(this.shaderProgram.transformAttribute, 1);
this.transformBuffer = gl.createBuffer();

//each render
gl.enableVertexAttribArray(this.shaderProgram.transformAttribute);
gl.bindBuffer(gl.ARRAY_BUFFER, this.transformBuffer);
gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([/*9 floats per instance*/]), gl.STREAM_DRAW);
gl.vertexAttribPointer(this.shaderProgram.transformAttribute, 9, gl.FLOAT, false, 0, 0);

在我的顶点着色器中,我只有属性mat3变换;'而不是统一mat3转换'。

当我执行上面的代码时,我在vertexAttribPointer上得到一个错误:" vertexAttribPointer:错误的大小或步幅"。

如果我将步幅设置为36(9 * 4字节浮点数)或0(自动?),则此错误仍然存​​在。

(顺便说一句,为什么你必须指定计数,类型,还有步幅?在什么情况下,步幅不仅仅是计数和类型大小的乘积?)

0 个答案:

没有答案