電腦圖學 第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函式

沒有留言:
張貼留言