当前位置: 首页 > 知识库问答 >
问题:

打开GL:在简单的3D线上显示空白窗口

单展
2023-03-14
#include <GL/freeglut.h>
#include <stdlib.h>
void vertex()
{
glLineWidth(5.0);
glBegin(GL_LINES);
{
glColor3f(1,0.5,0.0);//colour added 
glVertex3f(0.0,0.0,0.0);
glVertex3f(0.0,5.0,9.0);
}
glEnd();
glutPostRedisplay();
}
void myDisplay(void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();//load the identity matrix
vertex(); 
glutSwapBuffers();
}
void initializeGL(void)
{
glFlush();//initialize the screen before adding any elements
glEnable(GL_DEPTH_TEST);
glEnable (GL_BLEND);
glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glClearColor(0,0,0,1.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(-70.0,70.0,-70.0,70.0,0.01,80.0);//set the max mins for x,y and z
glMatrixMode(GL_MODELVIEW);
}
int main(int argc, char** argv)
 {
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH); 
glutInitWindowSize(500,500);
glutInitWindowPosition(100,150);
glutCreateWindow("3D line"); 
glutDisplayFunc(myDisplay);
glEnable(GL_DEPTH_TEST);
initializeGL();
glutMainLoop();}

这个程序应该只在3D中创建一条橙色线,但似乎每次都会给我一个黑屏。我确保交换缓冲区,因为我使用的是双缓冲区,每次它通过顶点时我都会重新显示。不确定是什么问题

共有1个答案

宁弘亮
2023-03-14

您正在视图截头体外部进行绘制glOrtho定义了一个截头体,该截头体在z维度上限制为[-near,-far](注意负号)。

 类似资料:
  • 我在这里遵循GLUT教程。我将第一个示例“YAT”复制并粘贴到xcode中,稍微修改了包含,发现出现了一个空白窗口。未修改的代码设置为显示线框茶壶。对我来说,这不会发生。 但是,如果我取消对创建金牛座的注释,则金牛座和茶壶的一部分会出现在窗口中。在//draw下,似乎还有一些随机的非注释行和注释行的组合,它们实际上会导致对象出现……或者只是一个空白屏幕。 P、 我知道每个人都说不要使用GLUT,但

  • 这是我的代码,请记住,我在几天前学习了python,所以我的代码可能制作不正确,等等。我正在尝试制作一个窗口,该窗口将显示一些文本(测试版),并将显示两个小矩形,我想成为按钮。

  • 当我运行此代码时,它会显示一个空白的黑色窗口,并显示未定义。 这不是颜色,它没有画任何线强硬我给的命令 我的错误是什么,阻止我将屏幕变白并引发错误?

  • 我从按钮操作监听器和命令操作监听器中调用了表单名称组。在这两个中,我都调用了一个连接请求。在连接的postResponse方法中,声明showForm。这里的问题是,当我单击按钮并正常打开groups表单时,它工作得很好,但当我单击hamburger菜单中的命令时,会显示空白表单,但一旦触摸屏幕,内容就会显示出来(在实际设备和模拟器中都是如此)。我也用组的形式调用了revalidate方法。因为我

  • 我正在使用Linux并试图学习OpenGL。我参考了learnopengl.com网站,并在这里编译了第一个可用的程序。 我似乎在编译程序时没有遇到命令问题 但是当我运行程序时,它会从后面显示东西,而不是像这样的空白窗口 但是请注意,此窗口不透明,因为如果我移动窗口,背景是相同的。但是,如果我最小化并重新打开窗口,则背景是新创建的。专用和集成 GPU 都会发生这种情况。 我需要做什么才能使它正常工

  • 为什么有些软件包用7-Zip打开无法看到里面的资源呢?下面我们来看一种实现方法: !packhdr: 临时文件 命令 这个选项可以让编译器使用 EXE 加壳软件(例如 Petite 或 UPX) 压缩可执行文件头部。请先指定一个临时文件名(例如 "temp.dat")以及命令行(例如 "C:\program files\upx\upx -9 temp.dat")来压缩可执行文件头部。 !packh