【问题标题】:This just shows a blank black screen, and if I do not put glutSwapBuffers() in both places it shows a blank white screen? [duplicate]这只是显示一个空白的黑屏,如果我不在两个地方都放置 glutSwapBuffers() 它会显示一个空白的白屏? [复制]
【发布时间】:2013-07-18 18:36:15
【问题描述】:

当我编译它时,它会出现一个空白的黑屏,如果我从任何一个位置取出 glut 交换缓冲区,或者同时我得到一个空白的白屏,这是什么问题?

#ifdef __APPLE__
#include <GLUT/glut.h>
#else
#include <GL/glut.h>
#endif

#include <stdlib.h>



 void ProcessSpecialKeys(int key, int x, int y){

    switch(key){

       case GLUT_KEY_RIGHT:

exit(0);

       case GLUT_KEY_LEFT:

exit(0);

       case GLUT_KEY_UP:

exit(0);

       case GLUT_KEY_DOWN:

exit(0);

       default:

exit(0);

    }

}




void renderPrimitive(void){

    glBegin(GL_QUADS);
    glVertex3f(-1.0f,-1.0f,0.0f);
    glVertex3f(-1.0f,1.0f,0.0f);
    glVertex3f(1.0f,1.0f,0.0f);
    glVertex3f(1.0f,-1.0f,0.0f);
    glEnd();
}

void display(void){

    glTranslatef(0.0f,0.0f,-0.5f);
    renderPrimitive();
    glutSwapBuffers();
}

int main(int argc, char **argv) {

glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA);
glutInitWindowPosition(100,100);
glutInitWindowSize(320,320);
glutCreateWindow("Dimension");
glutDisplayFunc(display);

    glLoadIdentity();

    glutSpecialFunc(ProcessSpecialKeys);

glutMainLoop();

return 0;
}

【问题讨论】:

  • 我只看到一个电话给 glutSwapBuffers() 。 . .
  • 我看不到模型视图和投影矩阵的任何设置。四边形很可能是在相机后面渲染的。使用例如设置您的相机和投影gluLookAt()gluPerspective().
  • 抱歉,它在我的 renderPirimative 函数末尾也没有复制它。

标签: c++ opengl glut


【解决方案1】:

在开始新的绘图之前,您需要清除缓冲区。换句话说,在你的显示函数中这样做:

void display(void){
    glClear(GL_COLOR_BUFFER_BIT); // <-----
    glTranslatef(0.0f,0.0f,-0.5f);
    renderPrimitive();
    glutSwapBuffers();
}

阅读函数glClearColor

已编辑

这不是正确的地方,但要更改背景颜色,请执行以下操作:

void display(void){
    glClearColor(0.5, 0.5, 0.5, 1);
    glClear(GL_COLOR_BUFFER_BIT); // <-----
    glScalef(0.5f,0.5f,0.5f);  // Your Quad is taking all the framebuffer
    renderPrimitive();
    glutSwapBuffers();
}

【讨论】:

  • 但还是不行……
【解决方案2】:

试试 glColor3f(0.5f, 0.5f, 0.5f);并删除 glClearColor(0.5, 0.5, 0.5, 1);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-09
    • 2021-05-21
    相关资源
    最近更新 更多