Example #1
0
  @Override
  public void init(GLAutoDrawable drawable) {
    try {
      gl = drawable.getGL().getGL2();

      gl.glClearColor(0.7f, 0.7f, 0.9f, 1.0f);
      // gl.setSwapInterval(1);

      gl.glEnable(GL.GL_DEPTH_TEST);
      gl.glEnable(GL2.GL_LIGHTING);

      gl.glEnable(GL.GL_CULL_FACE);
      gl.glCullFace(GL.GL_BACK);

      /////////////////////////////////
      // carregando e compilando objetos
      /////////////////////////////////
      createSceneObjects();

      Iterator<SceneObject> it = scene.getSceneObjectsIterator();
      while (it.hasNext()) {
        SceneObject sceneObject = it.next();

        JWavefrontModel[] models = sceneObject.getAnimationModels();
        if (models == null) continue;
        for (JWavefrontModel model : models) {
          if (sceneObject.useTexture())
            model.compile(
                drawable,
                JWavefrontModel.WF_MATERIAL
                    | JWavefrontModel.WF_TEXTURE
                    | JWavefrontModel.WF_SMOOTH);
          else model.compile(drawable, JWavefrontModel.WF_COLOR | JWavefrontModel.WF_SMOOTH);
        }
      }

      // light
      setSunLight();
      // fog
      setFog();

      gl.glMatrixMode(GL2.GL_PROJECTION);
      gl.glLoadIdentity();
      float h = (float) mainFrame.getWidth() / (float) mainFrame.getHeight();
      glu.gluPerspective(FPCamera.FOV, h, FPCamera.NEAR, FPCamera.FAR);

    } catch (IOException ex) {
      Logger.getLogger(Renderer.class.getName()).log(Level.SEVERE, null, ex);
    }
  }