LWJGL / OpenGL Не отрисовывает базовый квад

Я везде искал, и, похоже, мне не удалось заставить OpenGL рисовать простой четырехугольник. Окно отображается нормально с правильным цветным фоном, но OpenGL просто не отображает поле. Я использую OpenGL 4.4.0 - сборка 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();
}

в EntityBox:

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

person bdkuhman    schedule 30.11.2016    source источник


Ответы (1)


Я исправил: glClear должен быть

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

не знаю почему, потому что я был допущен, что если вы хотите 3d, используется depth_buffer. а также

glfwSwapBuffers(window);

нужно вызвать после рисования.

person bdkuhman    schedule 30.11.2016