Exemplo n.º 1
0
  public static void setOrtho() {
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();

    float l = -Runtime.screen_width / 2f;
    float r = -l;
    float b = -Runtime.screen_height / 2f;
    float t = -b;
    float zn = -1;
    float zf = 1;

    float[] m = new float[16];

    m[0] = 2f / (r - l);
    m[1] = 0;
    m[2] = 0;
    m[3] = 0;

    m[4] = 0;
    m[5] = 2f / (b - t);
    m[6] = 0;
    m[7] = 0;

    m[8] = 0;
    m[9] = 0;
    m[10] = 2f / (zf - zn);
    m[11] = 0;

    m[12] = (l + r) / (l - r) + (l * m[0]);
    m[13] = (t + b) / (b - t) + (b * m[5]);
    m[14] = (zf + zn) / (zn - zf);
    m[15] = 1;

    projection.set(m);

    glLoadMatrixf(projection.get());

    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
  }
Exemplo n.º 2
0
  public static void setPerspective(float aspect, float fov, float znear, float zfar) {
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();

    float f = 1f / (float) Math.tan(Math.toRadians(fov) / 2f);
    float zrange = znear - zfar;

    float[] m = new float[16];

    m[0] = f / aspect;
    m[1] = 0;
    m[2] = 0;
    m[3] = 0;

    m[4] = 0;
    m[5] = f;
    m[6] = 0;
    m[7] = 0;

    m[8] = 0;
    m[9] = 0;
    m[10] = (zfar + znear) / zrange;
    m[11] = (zfar * znear) / zrange;

    m[12] = 0;
    m[13] = 0;
    m[14] = -1f;
    m[15] = 1;

    projection.set(m);

    glLoadMatrixf(projection.get());

    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
  }