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