繁体   English   中英

C ++ + glut + OpenGL + gluSphere不会画任何东西

[英]C++ + glut + OpenGL + gluSphere doesn't draw anything

我正在使用GLUT与OpenGL一起使用(如果可以的话,可以与SDL一起使用)。 我需要画球。 我正在使用gluSphere但它根本不会画任何东西。

这是我的GLUT初始化:

// Initializes display
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
glutInitWindowSize(600, 600);

// Window settings
glutCreateWindow("Collision detect");
glClearColor(0.0, 0.0, 0.0, 1.0);
glEnable(GL_DEPTH_TEST);
glDepthFunc(GL_LEQUAL);
glEnable(GL_TEXTURE_2D);

二次初始化:

quadratic = gluNewQuadric();
if( !quadratic){
    throw new PROGRAM_EXCEPTION( "Cannot initialize quadartic", NULL);
}
gluQuadricNormals(quadratic, GLU_SMOOTH);
//gluQuadricDrawStyle( quadratic, GLU_FILL);
gluQuadricTexture(quadratic, GL_TRUE); // Tried both GL_TRUE and GL_FALSE

而我的绘画功能:

glPushMatrix();
glTranslatef( position.getX(), position.getY(), position.getZ());
// This commented piece of code draws dot where I want it to,
// so coordinates and camera position are just fine
//  glBegin(GL_POINTS);
//  glVertex3f( 0,0,0);
//  glEnd();
gluSphere( quadratic, 20.0f, 32, 32); // Tried r = 0.02f, 0.2f, 2.0f, 20.0f, none works
glPopMatrix();

问题:我想念什么? 是否有过剩的技巧可以使二次方画图? 它与我的某些设置不兼容吗?

我已经花了几个小时试图解决这个问题,尝试了不同的事情...如果您需要其他代码,只需说一下...我就不想在此处粘贴2000行。 还有一件事,我已经进行了三次检查,没有在glBegin()glEnd()使用它。 我几乎没有三角形包围该空间,它们绘制得很好。

问题:我想念什么?

如何设置视口和投影?

问题是我有一个班级正在处理绘画球(称为Sprit),它在构造函数中创建了二次方(复制构造函数创建了它自己的二次方),并在析构函数中删除了二次方。 尽管我已经仔细地编写了复制构造函数,但我却忘记编写assign运算符,并且使用了删除二次方。 我使用glGetError()来检查一切正常,没有错误报告,所以我认为这是GLUT的问题。

使用本指南http://www.mediafire.com/?x6h3hz6hn1wqq73

第2章主要介绍了您要查找的所有内容。 它还处理您使用的语言和技术堆栈。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM