我正在使用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()
内使用它。我有几个三角形包围空间,他们画得很好。
答案 0 :(得分:0)
问题:我错过了什么?
如何设置视口和投影?
答案 1 :(得分:0)
问题在于我有一个正在处理绘图球(称为Sprit)的类,它在构造函数中创建了二次方(也是复制构造函数创建了它自己的二次方)并在析构函数中删除了二次方。虽然我已经仔细地编写了复制构造函数但我忘了编写assign运算符而我已经使用了删除的二次函数。我正在使用glGetError()检查一切正常,没有报告错误,所以我认为它是GLUT的问题。
答案 2 :(得分:-1)
使用本指南http://www.mediafire.com/?x6h3hz6hn1wqq73
第2章主要涵盖您要寻找的一切。它还涉及您正在使用的语言和技术堆栈。