我遇到了一个问题,想要展示一个简单的三角形对象和简单的正方形对象的代码。当我运行这段代码时,两个对象都没有出现。可能问题出在mat4.perspective函数以及参数上。以下是出错的代码:
function drawScene() {
gl.viewport(0, 0, gl.viewportWidth, gl.viewportHeight);
gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
var rads=45*(Math.PI/180);
mat4.perspective(pMatrix, rads, gl.viewportWidth/gl.viewportHeight, 0.1, 100.0);
alert("this works");
mat4.identity(mvMatrix);
mat4.translate(mvMatrix, mvMatrix [-1.5, 0.0, -7.0]);
gl.bindBuffer(gl.ARRAY_BUFFER, triangleVertexPositionBuffer);
gl.vertexAttribPointer(shaderProgram.vertexPositionAttribute, triangleVertexPositionBuffer.itemSize, gl.FLOAT, false, 0, 0);
setMatrixUniforms();
gl.drawArrays(gl.TRIANGLES, 0, triangleVertexPositionBuffer.numItems);
mat4.translate(mvMatrix, mvMatrix [3.0, 0.0, 0.0]);
gl.bindBuffer(gl.ARRAY_BUFFER, squareVertexPositionBuffer);
gl.vertexAttribPointer(shaderProgram.vertexPositionAttribute, squareVertexPositionBuffer.itemSize, gl.FLOAT, false, 0, 0);
setMatrixUniforms();
gl.drawArrays(gl.TRIANGLE_STRIP, 0, squareVertexPositionBuffer.numItems);
}
我添加的JS警告在mat4.perspective行之前有效,但在此之后无效,因此我知道问题在于这一行。您有什么建议,可以帮助我找出问题并解决它吗?
mat4未定义
,你是否在JavaScript之前引入了gl-matrix
? - LJᛃ