2017年10月26日 星期四

俊隆ㄉ計算機圖學筆記 - Week 7 Shading

/* 各種光源位置 */
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 };
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 };

/* 閒置時執行*/
static void idle(void)
{
    printf("light pos = %.4f %.4f\n", light_position[0], light_position[1]);
    glutPostRedisplay();
}
/* 利用滑鼠控制光源 */
void motion(int x, int y)
{
    light_position[0] = -(x - 150)/150.0 *4;
    light_position[1] = -(y - 150)/150.0 *4;
    glLightfv(GL_LIGHT0, GL_POSITION, light_position);
    glutPostRedisplay();
}

- Light reflection need to consider
1. Diffuse
2. Specular
3. Ambient

1. Light Source
2. Normal
3.

沒有留言:

張貼留言