2022年4月12日 星期二

尖🦉-圖學筆記 Week08

◇複習上課範例程式: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加進





最後要save project!!再上傳


   ☆3D模型檔案會有兩個!  .mtl檔是material的縮寫,.obj檔放3D模型的資料(裡面有存v 頂點、vn法向量、f 面)

沒有留言:

張貼留言

VERY BEAUTIFUL, VERY POWERFUL

一.     一樣先安裝且設定好freeglut,OpecCV, 開啟CodeBlocks建立新專案 week11_gundam,                 把 MyGundam.zip下載解壓縮後的data資料夾放到freeglut/bin裡面 把week09_openc...