私は 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行を貼り付けたくありません。もう1つ、私はトリプルチェックを行いました.内部glBegin()
では使用していませんglEnd()
. スペースを囲む三角形はほとんどなく、うまく描画できます。