_setPerspectiveMatrix() {
        // update our matrix uniform if we actually have updated its values
        if(this.camera._shouldUpdate) {
            this.renderer.useProgram(this._program);
            this.gl.uniformMatrix4fv(this._matrices.projection.location, false, this._matrices.projection.matrix.elements);
        }

        // reset camera shouldUpdate flag
        this.camera.cancelUpdate();
    }
This will set our perspective matrix and update our perspective matrix uniform
     used internally at each draw call if needed
*