1
我想在使用OpenGL的白色背景上繪製紅色球體。以下是我應該繪製球體的代碼部分。主入口點的在白色背景上繪製球體(C++和OpenGL)
部分:
initialise();
glutDisplayFunc(draw_Sphere);
glEnable(GL_DEPTH_TEST);
glutMainLoop();
初始化:
void initialise()
{
glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
glClearDepth(1.0f);
glEnable(GL_DEPTH_TEST);
glEnable(GL_COLOR_MATERIAL);
glEnable(GL_LIGHTING);
glDepthFunc(GL_LEQUAL);
glShadeModel(GL_SMOOTH);
glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
}
繪製球體:
void draw_Sphere()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glTranslatef(200, 200, 0);
glColor3f(1.0, 0.0, 0.0);
glPushMatrix();
glutSolidSphere(0.25, 20, 20);
glPopMatrix();
glutSwapBuffers();
}
我不知道發生了什麼事情不對,但此次榮獲」渲染球體(它會繪製白色背景,但是)。任何建議來解決它?
一些想法:我看到你啓用GL_LIGHTING,但我沒有看到燈光設置。你在X和Y上做了一個glTranslatef,但是不是Z:但是我認爲你需要X和Y爲零,並且自從默認攝像頭沿着Z軸看Z軸被翻譯。我忘記Z應該是正面還是負面。接下來,無需圍繞對glutSolidSphere的調用推送/彈出矩陣。使用默認的相機矩陣。我建議先從一個工作教程開始,然後將您的調用添加到glutSolidSphere中。試試http://nehe.gamedev.net/tutorial/lessons_01__05/22004/ – 2014-10-03 15:29:05