2017-05-24 74 views
1

当我运行这个时,窗口弹出,我看到了这个。 (When I run the game, I see this)LWJGL 3:​​OpenGL Quad中的随机(0,0)点

如果你只是做一个新的Java项目,进口的OpenGL,GLFW和LWJGL,与当地人一起,然后复制这个代码可以重现(删除包)

package net.nathanthesnooper.timetraveller; 

import static org.lwjgl.glfw.GLFW.*; 
import static org.lwjgl.opengl.GL11.*; 
import org.lwjgl.opengl.GL; 

public class Game { 

    public static void main (String[] args) { 

     if(glfwInit() != true) { 
      System.err.println("GLFW Failed to initialize!"); 
      System.exit(1); 
     } 

     long window = glfwCreateWindow(640,480,"Game", 0, 0); 

     glfwShowWindow(window); 

     glfwMakeContextCurrent(window); 
     GL.createCapabilities(); 

     while(!glfwWindowShouldClose(window)) { 

      glfwPollEvents(); 

      glClear(GL_COLOR_BUFFER_BIT); 

      glBegin(GL_QUADS); 

      glVertex2d(-0.5,0.5); 
      glVertex2d(0.5,0.5); 
      glVertex2d(-0.5,-0.5); 
      glVertex2d(0.5,-0.5); 

      glEnd(); 

      glfwSwapBuffers(window); 

     } 

     glfwTerminate(); 

    } 

} 

回答

0

你以错误的顺序绘制四边形的顶点。尝试

glVertex2d(0.5,0.5); 
glVertex2d(-0.5,0.5); 
glVertex2d(-0.5,-0.5); 
glVertex2d(0.5,-0.5); 

你通常画在逆时针顺序为面向您四(或三角形)(这就是所谓的“缠绕”),顺时针为一个是背向您。就你而言,你已经将它们画成了一个无效的字母“Z”。

+0

谢谢,这有帮助!我想我以为它会自动解决自己:) – nathanthesnooper