WebGL Изометрическая проекция

Хорошо - схожу с ума здесь. Я делаю несколько WebGL и пытаюсь создать изометрический куб. Я не хочу использовать Three.js. Я хочу сначала понять, что происходит в моем коде. Я занимался исследованиями, и единственные учебные пособия, которые я могу найти, по-видимому, для OpenGL

Во всяком случае, вот моя функция drawScene:

function drawScene() {

this.gl.clear(this.gl.COLOR_BUFFER_BIT | this.gl.DEPTH_BUFFER_BIT);
mat4.perspective(45, this.gl.viewportWidth / this.gl.viewportHeight, 0.1, 100.0, pMatrix);
mvMatrix = mat4.lookAt([0,0,40], [0, 0, 0], [0, 1, 0]);

_globalNext = this._first;

    while(_globalNext) {
    _globalNext.render();
    }

}

и функция рендеринга

function render() {

mvPushMatrix();

//transform. order matters.
mat4.translate(mvMatrix, [this._x, this._y, this._z]);
mat4.rotate(mvMatrix, 0.01745*this._rot, [this._axisX, this._axisY, this._axisZ]);
mat4.scale(mvMatrix,  [this._scaleX,this._scaleY,this._scaleZ]);

//bind the buffers.
this.gl.bindBuffer(this.gl.ARRAY_BUFFER, this._positionBuff);
this.gl.vertexAttribPointer(this._shader.vertexPositionAttribute, this._positionBuff.itemSize,   this.gl.FLOAT, false, 0, 0);

this.gl.bindBuffer(this.gl.ARRAY_BUFFER, this._colorBuff);
this.gl.vertexAttribPointer(this._shader.vertexColorAttribute, this._colorBuff.itemSize, this.gl.FLOAT, false, 0, 0);

this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER, this._indexBuff);
this.setMatrixUniforms(this.gl);
this.gl.drawElements(this.gl.TRIANGLES, this._indexBuff.numItems, this.gl.UNSIGNED_SHORT, 0);

    if(this._usePopper == false) {
    mvPopMatrix();
    } 

_globalNext = this._nextSib;
}

Довольно пешеход. Я использую его для рисования кубов. В любом случае, в примерах OpenGL они, кажется, покончили с функцией перспективы, но здесь, если я пропущу это, моя сцена пуста. Я знаю, что функция lookAt работает правильно, и я должен сделатьsomething с перспективной матрицей. Небольшая помощь будет оценена. Спасибо!

Ответы на вопрос(1)

Ваш ответ на вопрос