- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 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个参数表示用于裁剪的zNear
和zFar
。当您将其设置为 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/
我试图在固定的时间间隔后依次旋转一个红色三角形和一个绿色三角形。我尝试了以下代码,但时间间隔不是常数。我无法找出问题所在。 static void display(void) { now=g
我有一些基本代码可以使用 glut 收集按键事件。 如果我按住一个键,我会触发连续事件(向下/向上/向下/向上/向下/向上/......),而不是预期的向下(一次,在开始时)及以上(一次,最后) #i
当我尝试调整过剩窗口的大小时,屏幕变为空白。 这是 reshape 回调函数的代码: void Resize(int width, int height) { CurrentWidth =
我使用最新的 freeglut 成功编译了这段代码,但我不断得到一个空白窗口,其中填充了 glClearColor 函数中指定的颜色。这个简单的程序来 self 学院提供的交互式计算机图形学教科书。我
任何人都可以解释发生了什么或没有发生什么,以便我可以更正它。到目前为止,这是来自 .cpp 文件的代码。在 Visual Studio Community 2015 中运行。 #include #i
我正在学习一个 openGL 教程,其中包括这个名为“glutCreateWindow”的函数,我的编译器(XCode 5 gcc,OSX)说它已被弃用。 还有什么选项适合替换这些“过剩*”相关函数?
我使用 OpenGL 3.3。在我的应用程序中,我将鼠标光标设置在窗口的中心(我将窗口的大小传递给“Camera”类的构造函数),但是当我调整窗口大小时(如全屏)我将光标放在左边的部分。所以,我想通过
我在为我的 GLUT 小行星游戏显示和动画多个小行星时遇到问题。我可以生成 1 ok,但是当我尝试添加更多时,输出不正确,createasteroid 不断被调用,并且出于某种原因只是在屏幕的不同部分
我认为我遇到了一个棘手的问题。我是 C++ 和 OpenGL/glut 的新手,所以要温柔!我正在编写一个独立于平台的简单程序(仅 2D)并且需要一个基本的 UI,因此我有一个生成 Button 对象
我很笨 :) 那么有人可以帮忙编写分步手册,如何安装“cairo”、“glut”并在 Windows 7 上的 VS 2010 项目 (C++) 中使用它吗? PS:最有趣的事情是我在 Linux 中
在我的 GLUT/OpenGL 练习中,我必须加载 3 个不同的对象,我给它们一个 file.m。这是通过读取该文件、创建列表并最终调用 glCallList() 来完成的。选择一个对象后,我必须如何
我正在尝试制作 gluLookAt() 函数,以便当我按下向上和向下键时,相机围绕 X 轴移动 我正在尝试我在以下位置看到的方法:http://www.lighthouse3d.com/tutoria
我是一名优秀的程序员,十分优秀!