2012-01-14 12 views
5

Estoy tratando de obtener un triángulo simple dibujado en Java utilizando LWJGL.Triángulo LWJGL básico con OpenGL

Estoy tratando de obtener un triángulo simple, cada uno con una esquina de un color específico. En este momento solo me está dando una pantalla en blanco.

Aquí está mi código:

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(); 
    } 

} 

Respuesta

7

Se está trabajando perfectamente bien, es sólo que el triángulo es de 1 unidad de altura y la ventana es de 480 unidades de altura, por lo que sólo se muestra como un píxel en la esquina .

Si reemplaza GL11.glOrtho(0, 640, 480, 0, 1, -1); con GL11.glOrtho(-3.2, 3.2, -2.4, 2.4, -1, 1);, verá todo perfectamente.