◇複習上課範例程式:Light & Material 打光/模型
1.GLfloat light_ka 調光的範圍。
2.GLfloat light_kd 可調光的顏色。
3.GLfloat light_ks 影響高光的部分。
◇實作(利用GLUT範例、和放在source的):
1.GLUT程式碼理解:
callback會呼叫display() keyboard() mouse() motion() 函式、前面有些是前幾次上課教的 (ex:glTranslatef()和glRotatef()等等)
2.打光的程式碼:打光的陣列 、打光的函式(在159~172的程式碼)
3. 複製第6週的light程式碼(會看到打光的黃色茶壺)
◇將3D模型檔加入,需要source 裡的 glm.h glm.c,用lightmaterial.cpp來學習:
1.加入include "glm.h"在程式碼 。
並將void display()裡的glutSolidTeapot( 0.3 ); 改成呼叫 drawmodel();///呼叫畫模型
☆#include < >引用系統裡的檔
#include " " 引用同目錄裡的檔☆
2.加進GLMmodel* pmodel = NULL; 是指向GLMmode模型的指標,NULL代表還沒好。
3.複製畫3D模型的程式碼 ( pmodel = glmReadOBJ("data/soccerball.obj"); 會去找模型檔案並加入)
4.將要用的模型資料夾放進working dir 目錄(在freeglut資料夾的bin裡),將data資料夾放進去。
5.將glm.h和glm.c 放進專案的資料夾裡 (glm.c需要改檔名成glm.cpp 才能使用)。
glm.cpp是讀和畫等等3D模型程式碼(第三步畫圖的程式都在裡面)、glm.h是為了可以用那些方法。
6.最後專案(weel088 model)按右鍵 add files... ->將glm.cpp加進
☆3D模型檔案會有兩個! .mtl檔是material的縮寫,.obj檔放3D模型的資料(裡面有存v 頂點、vn法向量、f 面)☆
沒有留言:
張貼留言