【问题标题】:LWJGL/OpenGL -- Not drawing basic quadLWJGL/OpenGL -- 不绘制基本四边形
【发布时间】:2016-11-30 07:54:06
【问题描述】:

我到处寻找,我似乎无法让 OpenGL 绘制一个简单的四边形。 窗口以正确的颜色背景显示得很好,但 OpenGL 只是不会绘制框。 我正在使用 OpenGL 4.4.0 - Build 20.19.15.4463 窗口大小为 1920x1080

这是我目前拥有的代码:

在 Main.java 中:

public void init(){
    if(glfwInit() != true){
        System.err.println("GLFW failed to initialize");
    }
    glfwWindowHint(GLFW_RESIZABLE, GL_TRUE);
    //TODO change name.
    window = glfwCreateWindow(width, height, "GameName", NULL, NULL);
    if(window == NULL){
        System.err.println("Window failed to be created");
    }

    GLFWVidMode vidmode = glfwGetVideoMode(glfwGetPrimaryMonitor());
    glfwSetWindowPos(window, 100, 100);
    glfwMakeContextCurrent(window);
    glfwShowWindow(window);
    GL.createCapabilities();

    glClearColor(0.0f, 0.5f, 1.0f, 1.0f);
    glEnable(GL_DEPTH_TEST);


    //set up projection matrix; allows us to draw.
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    glOrtho(0, width, height, 0, 1, -1);
    glMatrixMode(GL_MODELVIEW);


    testBox = new EntityBox(3, Color.RED);//just to test right now

    System.out.println("OpenGL: "+ glGetString(GL_VERSION));

}
public void update(){
    glfwPollEvents();

}
public void render(){
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glLoadIdentity();
    glfwSwapBuffers(window);
    testBox.draw();
}

在实体框中:

public void draw(){
    glColor3f(1.0f, 0.0f, 0.0f);
    glBegin(GL_QUADS);
        glVertex2f(0,0);
        glVertex2f(0,100);
        glVertex2f(100,0);
        glVertex2f(100,100);
    glEnd();
}

【问题讨论】:

    标签: lwjgl opengl-4


    【解决方案1】:

    我修复了它: glClear 需要是

    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    

    不知道为什么,因为如果你想要 3d,我会使用 depth_buffer。 和

    glfwSwapBuffers(window);
    

    绘制后需要调用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多