我試圖顯示一個簡單的三角形對象和簡單的方形對象的代碼有問題。當我運行代碼時,不會出現任何對象。問題在於mat4.perspective函數和可能的參數。下面是錯誤代碼:WebGL和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前行而非事後,所以我知道問題出在這行。對於我所做錯的任何建議以及如何糾正問題?
您是否在開發工具中遇到任何錯誤? – 2014-10-28 14:53:41
是的,它說mat4沒有定義。一旦在上一行:var mvMatrix = mat4.create();並且一次在mat4.perspective行 – user2988960 2014-10-28 16:23:28
也許'mat4沒有定義'您是否在JavaScript之前包含了'gl-matrix'? – 2014-10-28 17:34:31