Beispiel #1
0
  private Matrix4f getProjectionNormalized(int w, int h) {
    // range -1,1 in the narrow axis at z = 0.
    Matrix4f m1 = new Matrix4f();
    Matrix4f m2 = new Matrix4f();

    if (w > h) {
      float aspect = ((float) w) / h;
      m1.loadFrustum(-aspect, aspect, -1, 1, 1, 100);
    } else {
      float aspect = ((float) h) / w;
      m1.loadFrustum(-1, 1, -aspect, aspect, 1, 100);
    }

    m2.loadRotate(180, 0, 1, 0);
    m1.loadMultiply(m1, m2);

    m2.loadScale(-1, 1, 1);
    m1.loadMultiply(m1, m2);

    m2.loadTranslate(0, 0, 1);
    m1.loadMultiply(m1, m2);
    return m1;
  }