Я использую 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()
. У меня есть несколько треугольников, окружающих пространство, и они прекрасно рисуют.