예제 #1
0
  /**
   * レンダリング環境のセットアップ
   *
   * @param gcon
   */
  public void begin(GraphicContext gcon) {
    GraphicContextJogl gc = (GraphicContextJogl) gcon;
    GL gl = gc.getGL();

    if ((state_ & CLEAR) == CLEAR) {
      gl.glClearColor(r_, g_, b_, 1.0f); // カラープレーン初期値
      gl.glClearDepth(1.0); // デプスバッファの初期値
      gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT);
    }

    gl.glEnable(GL.GL_DEPTH_TEST); // デプスバッファをイネーブル
    gl.glDepthFunc(GL.GL_LESS); // デプスバッファの計算法指定
    gl.glDepthMask(true); // デプスバッファをリードライト
    gl.glEnable(GL.GL_LIGHTING);

    gl.glMatrixMode(GL.GL_PROJECTION);
    gl.glLoadIdentity();
    float right = (float) (near_ * Math.tan(fovx_ / 2));
    float left = -right;
    float top = right * aspect_;
    float bottom = -top;
    gl.glFrustum(left, right, bottom, top, near_, far_);

    buildViewMatrix();

    gc.setViewMatrix(viewMatrix_);
  }
예제 #2
0
 public void init(GLAutoDrawable gLDrawable) {
   renderer = new TextRenderer(new Font("SansSerif", Font.BOLD, 36)); // creates textrenderer
   GL gl = gLDrawable.getGL();
   gl.glShadeModel(GL.GL_SMOOTH); // Enable Smooth Shading
   gl.glClearColor(1.0f, 1.0f, 1.0f, 1.0f); // Black Background
   gl.glClearDepth(1.0f); // Depth Buffer Setup
   gl.glEnable(GL.GL_DEPTH_TEST); // Enables Depth Testing
   gl.glDepthFunc(GL.GL_LEQUAL); // The Type Of Depth Testing To Do
   // Really Nice Perspective Calculations
   gl.glHint(GL.GL_PERSPECTIVE_CORRECTION_HINT, GL.GL_NICEST);
 }
예제 #3
0
  /** OpenGL initialization function Called once, on startup */
  @Override
  public void init(GLAutoDrawable auto_drawable) {
    // initialize OpenGL state, load arrays, etc.
    // anything needs to be dont before the drawing calls
    final GL gl = auto_drawable.getGL();
    gl.glShadeModel(GL.GL_SMOOTH);
    gl.glClearColor(1.0f, 0.0f, 0.0f, 0.0f);
    gl.glClearDepth(1.0f);
    gl.glEnable(GL.GL_DEPTH_TEST);
    gl.glDepthFunc(GL.GL_LEQUAL);
    gl.glHint(GL.GL_PERSPECTIVE_CORRECTION_HINT, GL.GL_NICEST);

    gl.glEnableClientState(GL.GL_TEXTURE_COORD_ARRAY);
    gl.glEnableClientState(GL.GL_VERTEX_ARRAY);

    // set the texture mode to decal, so textures are rendered independent of
    // underlying colors
    gl.glTexEnvf(GL.GL_TEXTURE_ENV, GL.GL_TEXTURE_ENV_MODE, GL.GL_DECAL);

    // initialize vertex arrays
    initVertexArrays();

    // enable 2D texturing
    gl.glEnable(GL.GL_TEXTURE_2D);

    // load the question texture
    question_Texture = loadTexture("Data/Pictures/question_mark.png");

    // set up fog effect
    float fogColor[] = {0.5f, 0.5f, 0.5f, 1.0f}; // Fog Color

    gl.glFogi(GL.GL_FOG_MODE, GL.GL_LINEAR); // Fog Mode
    gl.glFogfv(GL.GL_FOG_COLOR, FloatArrayToFloatBuffer(fogColor)); // Set Fog Color
    gl.glFogf(GL.GL_FOG_DENSITY, 0.35f); // How Dense Will The Fog Be
    gl.glHint(GL.GL_FOG_HINT, GL.GL_NICEST); // Fog Hint Value
    gl.glFogf(GL.GL_FOG_START, 0.0f); // Fog Start Depth
    gl.glFogf(GL.GL_FOG_END, 3.0f); // Fog End Depth
    gl.glEnable(GL.GL_FOG); // Enables GL_FOG

    // load all textures
    LoadAllGuessModelTextures(guess_model_array);
  }
예제 #4
0
  private void initOpenGL() {
    pgl = (PGraphicsOpenGL) g;
    gl = pgl.gl;
    gl.setSwapInterval(1);

    gl.glShadeModel(GL.GL_SMOOTH); // Enable Smooth Shading
    gl.glClearColor(0.0f, 0.0f, 0.0f, 0.5f); // Black Background
    gl.glClearDepth(1.0f); // Depth Buffer Setup
    gl.glEnable(GL.GL_DEPTH_TEST); // Enables Depth Testing
    gl.glDepthFunc(GL.GL_LEQUAL); // The Type Of Depth Testing To Do
    gl.glHint(
        GL.GL_PERSPECTIVE_CORRECTION_HINT, GL.GL_NICEST); // Really Nice Perspective Calculations
    gl.glDisable(GL.GL_TEXTURE_2D);

    // Set up lighting
    gl.glLightfv(GL.GL_LIGHT1, GL.GL_AMBIENT, lightAmbient, 0);
    gl.glLightfv(GL.GL_LIGHT1, GL.GL_DIFFUSE, lightDiffuse, 0);
    //      gl.glLightfv( GL.GL_LIGHT1, GL.GL_SPECULAR, lightSpecular, 0 );
    gl.glLightfv(GL.GL_LIGHT1, GL.GL_POSITION, lightPosition, 0);
    gl.glEnable(GL.GL_LIGHTING);
    gl.glEnable(GL.GL_LIGHT1);
  }
예제 #5
0
  public void init() {
    /*
     * Set the values used when clearing the screen
     */
    gl.glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
    gl.glClearDepth(1);

    // gl.glEnable(GL.GL_DEPTH_TEST);
    // gl.glDepthFunc(GL.GL_LEQUAL);
    // gl.glDepthMask(true);

    glu = new GLU();

    enableAlpha();

    // gl.glHint(GL.GL_PERSPECTIVE_CORRECTION_HINT, GL.GL_NICEST);

    scaleX = 1;
    scaleY = 1;

    brushPos = new Vector();
    currentTexture = null;
    textureCoords = null;
  }