2. 今日主題: Lighting打光、Shading光影 => 用mouse調光源
static void resize(int width, int height) ///縮放視窗後圖形不會變形
{
const float ar = (float) width / (float) height;
glViewport(0, 0, width, height);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glFrustum(-ar, ar, -1.0, 1.0, 2.0, 100.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity() ;
}
const GLfloat light_position[] = { 2.0f, 5.0f, 5.0f, 0.0f };
const 不能改變值 所以刪掉
GLfloat light_position[] = { 2.0f, 5.0f, 5.0f, 0.0f }; ///光源位置
void motion(int x, int y) ///用滑鼠控制光源
{
light_position[0]=(x-150)/150.0 *2;
light_position[1]=-(y-150)/150.0 *2;
glLightfv(GL_LIGHT0, GL_POSITION, light_position);
glutPostRedisplay();
}
int main()
{
....
glutDisplayFunc(display);
glutKeyboardFunc(key);
glutIdleFunc(idle);
glutMotionFunc(motion);
....
}
結果:

沒有留言:
張貼留言