2012-01-14 9 views
5

私は、LWJGLを使ってJavaで描画された単純な三角形を取得しようとしています。基本LWJGL三角(OpenGL付き)

私は1つの特定の色の角を持つ単純な三角形を取得しようとしています。今は空白の画面を与えているだけです。ここで

は私のコードです:

package com.ex; 

import org.lwjgl.LWJGLException; 
import org.lwjgl.opengl.Display; 
import org.lwjgl.opengl.DisplayMode; 
import org.lwjgl.opengl.GL11; 
import org.lwjgl.input.Keyboard; 

public class ColoredTriangle { 
    public void start() { 
     try { 
      Display.setDisplayMode(new DisplayMode(640, 480)); 
      Display.create(); 
     } catch (LWJGLException e) { 
      e.printStackTrace(); 
      System.exit(0); 
     } 

     // Init OpenGL 
     GL11.glMatrixMode(GL11.GL_PROJECTION); 
     GL11.glLoadIdentity(); 
     GL11.glOrtho(0, 640, 480, 0, 1, -1); 
     GL11.glMatrixMode(GL11.GL_MODELVIEW); 

     boolean quit = false; 

     while (!quit) {   
      // Clear the screen. 
      GL11.glClear(GL11.GL_COLOR_BUFFER_BIT | GL11.GL_DEPTH_BUFFER_BIT); 

      // Begin drawing 
      GL11.glBegin(GL11.GL_TRIANGLES); 
       // Top & Red 
       GL11.glColor3f(1.0f, 0.0f, 0.0f); 
       GL11.glVertex2f(0.0f, 1.0f); 

       // Right & Green 
       GL11.glColor3f(0.0f, 1.0f, 0.0f); 
       GL11.glVertex2f(1.0f, 1.0f); 

       // Left & Blue 
       GL11.glColor3f(0.0f, 0.0f, 1.0f); 
       GL11.glVertex2f(1.0f, -1.0f); 
      GL11.glEnd(); 

      Display.update(); 

      if (Display.isCloseRequested() || Keyboard.isKeyDown(Keyboard.KEY_ESCAPE)) 
       quit = true; 
     } 

     Display.destroy(); 
    } 

    public static void main(String args[]) { 
     ColoredTriangle ct = new ColoredTriangle(); 
     ct.start(); 
    } 

} 

答えて

7

それは完全に正常に動作している、それはあなたの三角形が1つの単位高く、あなたの窓は480単位高いので、それが唯一の隅に1つの画素として表示されることだけです。

GL11.glOrtho(0, 640, 480, 0, 1, -1);GL11.glOrtho(-3.2, 3.2, -2.4, 2.4, -1, 1);に置き換えると、すべてがうまく表示されます。

関連する問題