部分代码:
//灯光
{
GLfloat light_position[] = {10.0f,10.0f,10.0f,1.0f};
GLfloat light_ambient[] = {0.2f,0.2f,0.2f,1.0f};
GLfloat light_diffuse[] = {1.0f,1.0f,1.0f,1.0f};
GLfloat light_specular[] = {1.0f,1.0f,1.0f,1.0f};
glLightfv(GL_LIGHT0,GL_POSITION,light_position);
glLightfv(GL_LIGHT0,GL_AMBIENT,light_ambient);
glLightfv(GL_LIGHT0,GL_DIFFUSE,light_diffuse);
glLightfv(GL_LIGHT0,GL_SPECULAR,light_specular);
glEnable(GL_LIGHT0);
glEnable(GL_LIGHTING);
glEnable(GL_DEPTH_TEST);
}
//纹理背景
glPushMatrix();
glScalef(6.0f,6.0f,0.0f);
glBindTexture(GL_TEXTURE_2D,texGround);
glBegin(GL_QUADS);
glTexCoord2f(0.0f,0.0f);glVertex3f(-1.0f*aspect,-1.0f,-2.0f);
glTexCoord2f(0.0f,1.0f);glVertex3f(-1.0f*aspect,1.0f,-2.0f);
glTexCoord2f(1.0f,1.0f);glVertex3f(1.0f*aspect,1.0f,-2.0f);
glTexCoord2f(1.0f,0.0f);glVertex3f(1.0f*aspect,-1.0f,-2.0f);
glEnd();
glPopMatrix();
//球体
glPushMatrix();
{
GLfloat mat_ambient[] = {0.5f,0.2f,0.2f,1.0f};
GLfloat mat_diffuse[] = {0.8f,0.4f,0.2f,1.0f};
GLfloat mat_specular[] = {1.0f,1.0f,1.0f,1.0f};
GLfloat mat_emission[] = {0.2f,0.0f,0.0f,1.0f};
GLfloat mat_shininess = 128.0f;
glMaterialfv(GL_FRONT,GL_AMBIENT,mat_ambient);
glMaterialfv(GL_FRONT,GL_DIFFUSE,mat_diffuse);
glMaterialfv(GL_FRONT,GL_SPECULAR,mat_specular);
glMaterialfv(GL_FRONT,GL_EMISSION,mat_emission);
glMaterialf(GL_FRONT,GL_SHININESS,mat_shininess);
glTranslatef(dx,dy,dz);
glRotatef(ax,1.0f,0.0f,0.0f);
glRotatef(ay,0.0f,1.0f,0.0f);
glutSolidSphere(2.0,40,32);
}
glPopMatrix();
需要怎样修改?
2012年07月25日 11点07分
2
看样子是两种色素混到一起了。我用的是vtk,你这些函数我都不知道是干嘛的
2012年07月25日 12点07分
@蓝色的孤鹰 OpenGL函数命名不是很相似的吗?至少我见过的python实现库,名字几乎一模一样
2012年07月25日 12点07分