2020年4月22日 星期三

電腦圖學 第08週 2020-04-15 1. 主題: 打光 2. 練習: 試玩 light_material.exe 3. 練習: 從 CodeBlocks GLUT專案的177行, 拿light打光相關的陣列、函式來用 4. 介紹: ambient light, diffuse light, specular light 5. 期中考題: OpenGL必背10函式

Week08
電腦圖學 第08週 2020-04-15
1. 主題:打光
2. 練習: 試玩 light_material.exe
3. 練習: 從 CodeBlocks GLUT專案的177行, 拿light打光相關的陣列、函式來用
4. 介紹: ambient light, diffuse light, specular light
5. 期中考題: OpenGL必背10函式

1. 主題:打光



2. 練習: 試玩 light_material.exe 



3. 練習: 從 CodeBlocks GLUT專案的177行, 拿light打光相關的陣列、函式來用 


///在外面陣列 到第1個light,是陣列的宣告,裡面有的光值
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 };
///裡面有 material的值
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 };

///打開第1個燈光
glEnable(GL_LIGHT0);
    glEnable(GL_NORMALIZE);
    glEnable(GL_COLOR_MATERIAL);
    glEnable(GL_LIGHTING);
///光的設定值
    glLightfv(GL_LIGHT0, GL_AMBIENT,  light_ambient);
    glLightfv(GL_LIGHT0, GL_DIFFUSE,  light_diffuse);
    glLightfv(GL_LIGHT0, GL_SPECULAR, light_specular);
    glLightfv(GL_LIGHT0, GL_POSITION, light_position);
///material的設定值
    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_SHININESS, high_shininess);


4. 介紹: ambient light, diffuse light, specular light
5. 期中考題: OpenGL必背10函式




沒有留言:

張貼留言