代码之家  ›  专栏  ›  技术社区  ›  yesex

OpenGL GL_点结果与输入不同

  •  0
  • yesex  · 技术社区  · 7 年前

    我的测试计划:

    int w = atoi(argv[1]);
    int h = atoi(argv[2]);
    
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    glOrtho(0, w, h, 0, 1.0, -1.0);
    glMatrixMode(GL_MODELVIEW);
    glEnable(GL_TEXTURE_2D);
    glLoadIdentity();
    
    unsigned int wf,hf;
    unsigned char rgb[3];
    
    while(!glfwWindowShouldClose(window)){
        glClear(GL_COLOR_BUFFER_BIT);
        glPointSize(1);
        glBegin(GL_POINTS);
        for(hf=0;hf<h;hf++){
            for(wf=0;wf<w;wf++){
                memset(rgb,0,3);
                rgb[wf%3]=0xff;
                glColor3ub(rgb[0],rgb[1],rgb[2]);
                glVertex2f(wf,hf);
            }
        }
        glEnd();
        glfwSwapBuffers(window);
        glfwPollEvents();
    }
    

    结果:

    未着色

    not colored

    有色的

    colored

    1 回复  |  直到 7 年前
        1
  •  0
  •   vallentin Remi    7 年前

    迈克尔·罗伊的方式解决了我的问题我只是改变了这句话

    GLFWwindow* wmain = glfwCreateWindow(atoi(argv[1]), atoi(argv[2]), "test", 0, 0);
    

    GLFWwindow* wmain = glfwCreateWindow(atoi(argv[1]) + 1, atoi(argv[2]) + 1, "test", 0, 0);