private static void setUpCamera() {
   cam =
       new EulerCamera(
           (float) Display.getWidth() / (float) Display.getHeight(), -2.19f, 1.36f, 11.45f);
   cam.setFieldOfView(70);
   cam.applyPerspectiveMatrix();
 }
 private static void checkInput() {
   cam.processMouse(1, 80, -80);
   cam.processKeyboard(16, 1, 1, 1);
   if (Mouse.isButtonDown(0)) {
     Mouse.setGrabbed(true);
   } else if (Mouse.isButtonDown(1)) {
     Mouse.setGrabbed(false);
   }
 }
 private static void render() {
   glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
   glLoadIdentity();
   cam.applyTranslations();
   glUseProgram(shaderProgram);
   glLight(GL_LIGHT0, GL_POSITION, asFloatBuffer(cam.x(), cam.y(), cam.z(), 1));
   glBindBuffer(GL_ARRAY_BUFFER, vboVertexHandle);
   glVertexPointer(3, GL_FLOAT, 0, 0L);
   glBindBuffer(GL_ARRAY_BUFFER, vboNormalHandle);
   glNormalPointer(GL_FLOAT, 0, 0L);
   glEnableClientState(GL_VERTEX_ARRAY);
   glEnableClientState(GL_NORMAL_ARRAY);
   glColor3f(0.4f, 0.27f, 0.17f);
   glMaterialf(GL_FRONT, GL_SHININESS, 10f);
   glDrawArrays(GL_TRIANGLES, 0, model.faces.size() * 3);
   glDisableClientState(GL_VERTEX_ARRAY);
   glDisableClientState(GL_NORMAL_ARRAY);
   glBindBuffer(GL_ARRAY_BUFFER, 0);
   glUseProgram(0);
 }