一、用滑鼠打光
1.先建一個glut專案
打開main.cpp看到126~134行程式碼
const GLfloat light_ambient[] = { 0.0f, 0.0f, 0.0f, 1.0f };
const GLfloat light_diffuse[] = { 1.0f, 1.0f, 1.0f, 1.0f };
const GLfloat light_specular[] = { 1.0f, 1.0f, 1.0f, 1.0f };
const GLfloat light_position[] = { 2.0f, 5.0f, 5.0f, 0.0f };
const GLfloat mat_ambient[] = { 0.7f, 0.7f, 0.7f, 1.0f };
const GLfloat mat_diffuse[] = { 0.8f, 0.8f, 0.8f, 1.0f };
const GLfloat mat_specular[] = { 1.0f, 1.0f, 1.0f, 1.0f };
const GLfloat high_shininess[] = { 100.0f };
前四行是控制打光、後四行是材質。
今天重點是要做用滑鼠控制打光
將上面打光第四行
const GLfloat light_position[] = { 2.0f, 5.0f, 5.0f, 0.0f }; 的cost拿掉
並在下面加上
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();
}
並記得在main加上 glutMotionFunc(motion);
就可以按住滑鼠拖曳打光嘍~
沒有留言:
張貼留言