function renderCube(){
const gl = renderer.gl;
const cameraPosition = [2, 3, 5];
const up = [0, 1, 0];
const target = [0, 0, 0];
const modelMatrix = mat4.create();
mat4.rotateY(modelMatrix, modelMatrix, rot/180 * Math.PI);
const viewMatrix = mat4.create();
const projectionMatrix = mat4.create();
const mvMatrix = mat4.create();
const mvpMatrix = mat4.create();
mat4.lookAt(viewMatrix, cameraPosition, target, up);
const fov = 45;
mat4.perspective(
projectionMatrix,
(fov / 180) * Math.PI,
1,
0.01,
100
);
mat4.multiply(
mvMatrix,
viewMatrix,
modelMatrix
);
mat4.multiply(
mvpMatrix,
projectionMatrix,
mvMatrix
);
const matrixUniformLocation = gl.getUniformLocation(program, "uMVPMatrix");
gl.clearColor(0, 0, 0, 1);
gl.enable(gl.DEPTH_TEST);
gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
gl.viewport(0, 0, gl.canvas.width, gl.canvas.height);
gl.useProgram(program);
gl.bindBuffer(gl.ARRAY_BUFFER, vertex.buffer);
gl.vertexAttribPointer( vertex.location, 3, gl.FLOAT, false, 0, 0);
gl.enableVertexAttribArray(vertex.location);
const uMVPMatrixLocatio = gl.getUniformLocation(program, 'uMVPMatrix');
gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, index.buffer);
gl.uniformMatrix4fv(matrixUniformLocation, false, mvpMatrix);
gl.drawElements(gl.TRIANGLES, index.size, gl.UNSIGNED_SHORT, 0);
}