gpt4 book ai didi

c++ - 过剩窗口什么都不显示

转载 作者:行者123 更新时间:2023-11-28 07:14:03 25 4
gpt4 key购买 nike

我正在尝试使用 freeglut 创建一个简单的项目。好吧,我之前所有的项目都在工作,但新项目在窗口中什么也没有显示。我不明白为什么。

在那里我初始化过剩

int main(int argc, char* argv[])
{
cout<<"Initializing project...."<<endl;

glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA | GLUT_MULTISAMPLE);
glutInitContextVersion(3, 3);
glutSetOption(GLUT_ACTION_ON_WINDOW_CLOSE, GLUT_ACTION_GLUTMAINLOOP_RETURNS);
glutInitContextFlags(GLUT_COMPATIBILITY_PROFILE);
glutInitWindowPosition(100, 100);
glutInitWindowSize(800, 800);
glutCreateWindow("PROJECT");

glewExperimental = true;
if (glewInit() != GLEW_OK) {
fprintf(stderr, "Failed to initialize GLEW\n");
return -1;
}

if (glewIsSupported("GL_VERSION_3_3"))
cout<<"SUCCESS: Opengl 3.3 supported"<<endl;
else {
cout<<"FAIL: Opengl 3.3 not supported"<<endl;
getchar();
return 1;
}

glViewport(0, 0, 800, 800);

glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45.0f, 1.0, 0.5f ,150.0f);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glClearColor(0.0, 0.0, 0.0, 1.0);

glutSetCursor(GLUT_CURSOR_NONE);

cout<<"INIT: functions binding....";
glutDisplayFunc(render);
glutIdleFunc(render);
cout<<"SUCCESS"<<endl;

cout<<"GLUT STARTS NOW!"<<endl;

glutMainLoop();

cout<<"GLUT WINDOW CLOSED!"<<endl;
cout<<"Cleaning...."<<endl;

cout<<"Press any ENTER to exit..."<<endl;
getchar();

return 0;
}

函数 render 看起来像这样

void render()
{
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT);

glMatrixMode(GL_MODELVIEW);
glLoadIdentity();

glBegin(GL_LINES);
glColor3f(1.0, 0.0, 1.0);
glVertex3f(0.1, 0, 0);
glVertex3f(0.1, 0.5, 0);
glVertex3f(0.5, 0.5, 0);
glVertex3f(0.5, 0.0, 0);
glEnd();

glutSwapBuffers();
}

但它什么也没显示。有什么问题?

最佳答案

gluPerspective的第3、4个参数表示用于裁剪的zNearzFar。当您将其设置为 0.5~150 时,您传递给 glVertex3f 的 z 值将被更改,因为在 OpenGL 中我们正在寻找 Z 的负方向默认。您可以尝试类似 glVertex3f(0.1, 0.5, -10)
此外,在我的平台上,我还必须注释这行 glutInitContextVersion(3, 3); 以使其正常工作。这是 freeglut 的扩展,在我的经验中我很少使用它。也许您也可以在不影响最终结果的情况下删除该行。

关于c++ - 过剩窗口什么都不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20518600/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com