title: Camera z axis aligned with the object doesn't apply foreshortening
body: <p><a href="https://i.stack.imgur.com/2FCqx.gif" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/2FCqx.gif" alt="enter image description here" /></a></p>
  <pre><code>  get c_matrix() {
      return Mat4.identity.translate(Vec3.make(0, 500, 1000))
    }
  </code></pre>
  <p>If I use this original version with these parameters:</p>
  <pre><code>  get c_matrix() {
      return Mat4.lookAt(this.o, this.l, Vec3.up)
    }
  
    // 
    camera.l = Vec3.zero
    camera.o.z = -500
    camera.o.y = 100
  </code></pre>
  <p>It kind of skews a little. Is this how it is supposed to work, or something is wrong.</p>
  <p>I place the object like this:</p>
  <pre><code>this.g.texture(0xcccccc, 
       /* x rotation, a_pi changes */ a_pi, 0, 0,
       0, 0, 50, /* x y z */
       /* other params */
       112 * 10, 32 * 50, 0, 0, 112, 32, 1024, 1024)
  </code></pre>
  <p>So if camera is at 0 0 -500, object is at 0 0 0, I get no foreshortening. I also tried moving the object up and down in y direction but still no foreshortening. Finally if I move the camera +y direction, it starts foreshortening.</p>
  <p>Perspective matrix, which is multiplied by camera inverse:</p>
  <pre><code>p_matrix = Mat4.perspective(Math.PI*0.4, 16/9, 10, 1000)
  </code></pre>
  <p>Also I tried to render three axis, but the z axis is not visible (the rotating axis):</p>
  <p><a href="https://i.stack.imgur.com/hYl9i.gif" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/hYl9i.gif" alt="enter image description here" /></a></p>
  <p>With these parameters:</p>
  <pre><code>this.c.o.z = -50
  this.c.o.y = -200
  this.c.o.x =-100
  
  
  this.g.texture(0xcccccc, 0, 0, 0, 0, 0, 0, /* rotation and position */
   200, 4, 0, /* scale x y z */
   0, 10, 10, 1024, 1024)
  this.g.texture(0xcccccc, 0, 0, 0, 0, 0, 0, 
  4, 200, 0, /* scale x y z */
  0, 10, 10, 1024, 1024)
  /* the problem z axis */
  this.g.texture(0xcccccc, 0, a_pi, 0, 0, -100, 0, /* rotation is a_pi changing value */
  200, 4, 0, 
   0, 10, 10, 1024, 1024)
  </code></pre>