打光
GLfloat pos[] = { 0.0, 0.0, -1.0, 0.0 };int main(int argc, char**argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("week05");
glutDisplayFunc(display);
glEnable(GL_LIGHT0); //打開打光功能
glEnable(GL_LIGHTING); //打開打光功能
glLightfv(GL_LIGHT0, GL_POSITION, pos);
glEnable(GL_DEPTH_TEST); //深度測試
glutMainLoop();
}
p.s. glLightfv(光源,光的座標,顏色);
加入keyboard,mouse
int RotateX=0,RotateY=0,RotateZ=0;
int oldX=0,oldY=0;
void keyboard(unsigned char key,int x,int y)
{
printf("now: %c (%d %d)\n",key,x,y);
if(key=='1')
{
RotateX+=1;
}
else if(key=='2')
{
RotateY+=1;
}
else if(key=='3')
{
RotateZ+=1;
}
glutPostRedisplay();
}
void mouse(int button,int state,int x,int y)
{
printf("now: %d %d (%d %d)\n",button,state,x,y);
if(state==GLUT_DOWN)
{
oldX=x;
oldY=y;
}
}
void motion(int x,int y)
{
RotateY+=-(x-oldX); //y軸旋轉是左右旋轉
RotateX+=-(y-oldY); //x軸旋轉是上下旋轉
oldX=x;
oldY=y;
glutPostRedisplay();
}
沒有留言:
張貼留言