drawScene

GPGPU.drawScene()

3D表示をします。

ソース

drawScene() {
    var param = this.drawObj.onDraw();

    var pMatrix = mat4.create();
    mat4.perspective(45, this.canvas.width / this.canvas.height, 0.1, 100.0, pMatrix);

    var mvMatrix = mat4.create();
    mat4.identity(mvMatrix);

    mat4.translate(mvMatrix, [0.0, 0.0, this.drawParam.z]);

    mat4.rotate(mvMatrix, this.drawParam.xRot, [1, 0, 0]);
    mat4.rotate(mvMatrix, this.drawParam.yRot, [0, 1, 0]);

    var pmvMatrix = mat4.create();
    mat4.multiply(pMatrix, mvMatrix, pmvMatrix);

    var normalMatrix = mat3.create();
    mat4.toInverseMat3(mvMatrix, normalMatrix);
    mat3.transpose(normalMatrix);

    param.args["uPMVMatrix"] = pmvMatrix;
    param.args["uNMatrix"] = normalMatrix;

    this.compute(param);

    // 次の再描画でdrawSceneが呼ばれるようにする。
    window.requestAnimationFrame(this.drawScene.bind(this));
}