2013-03-05 97 views
2

我有這樣的代碼,我現在明白了:LWJGL基礎:繪製四邊形,在depth

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

public class Main { 

    public void start() { 
     try { 
     Display.setDisplayMode(new DisplayMode(800,600)); 
     Display.create(); 
    } catch (LWJGLException e) { 
     e.printStackTrace(); 
     System.exit(0); 
    } 

    // init OpenGL 
    GL11.glMatrixMode(GL11.GL_PROJECTION); 
    GL11.glLoadIdentity(); 
    GL11.glOrtho(0, 800, 0, 600, 0, 800); 
    GL11.glMatrixMode(GL11.GL_MODELVIEW); 

    while (!Display.isCloseRequested()) { 
     // Clear the screen and depth buffer 
     GL11.glClear(GL11.GL_COLOR_BUFFER_BIT | GL11.GL_DEPTH_BUFFER_BIT); 

     // set the color of the quad (R,G,B,A) 
     GL11.glColor3f(1.0f,1.0f,1.0f); 

     // draw quad 
     GL11.glBegin(GL11.GL_QUADS); 
     GL11.glVertex2f(100,100); 
     GL11.glVertex2f(100+200,100); 
     GL11.glVertex2f(100+200,100+200); 
     GL11.glVertex2f(100,100+200); 
     GL11.glEnd(); 

     Display.update(); 
    } 

    Display.destroy(); 
    } 

    public static void main(String[] argv) { 
     Main quadExample = new Main(); 
     quadExample.start(); 
    } 
} 

我想知道如何繪製框,以便它不是在屏幕上繪製,但挫了一下,怎麼樣?

回答

1
GL11.glBegin(GL11.GL_QUADS); 
GL11.glVertex3f(100,100,-100); 
GL11.glVertex3f(100+200,100,-100); 
GL11.glVertex3f(100+200,100+200,-100); 
GL11.glVertex3f(100,100+200,-100); 
GL11.glEnd(); 

雖然這不會使任何視覺差異與一個單一的方塊在ortho。您必須切換到透視投影矩陣,才能看起來像「後退」。

+0

它現在沒有出現:L – 2013-03-05 20:29:52

+1

對不起,在Z座標上出現了錯誤的標記。固定。 – genpfault 2013-03-05 20:44:25