Skip to content

Instantly share code, notes, and snippets.

@Orpheon
Created April 24, 2014 11:48
Show Gist options
  • Save Orpheon/11251679 to your computer and use it in GitHub Desktop.
Save Orpheon/11251679 to your computer and use it in GitHub Desktop.
public static void gluPerspective(float fovy, float aspect, float zNear, float zFar) {
float sine, cotangent, deltaZ;
float radians = fovy / 2 * GLU.PI / 180;
deltaZ = zFar - zNear;
sine = (float) Math.sin(radians);
if ((deltaZ == 0) || (sine == 0) || (aspect == 0)) {
return;
}
cotangent = (float) Math.cos(radians) / sine;
__gluMakeIdentityf(matrix);
matrix.put(0 * 4 + 0, cotangent / aspect);
matrix.put(1 * 4 + 1, cotangent);
matrix.put(2 * 4 + 2, - (zFar + zNear) / deltaZ);
matrix.put(2 * 4 + 3, -1);
matrix.put(3 * 4 + 2, -2 * zNear * zFar / deltaZ);
matrix.put(3 * 4 + 3, 0);
glMultMatrix(matrix);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment