2022年4月12日 星期二

雪⛄電腦圖學筆記08~

  2022/4/12 第八周   (第七周放假)  

主題 : 3D模型

1. (1)  https://jsyeh.org/3dcg10/ ,下載win32、data、source 並且解壓縮

    (2)  執行Light Material.exe : 上角按右鍵可以換模型 / 按左鍵可以旋轉模型下按右鍵換材質 (Material) 

    (3)  GLfloat light_ka : 可以調打光的範圍 a=AMBIENT

    (4)  GLfloat light_kd : 可以調光的顏色    d=DIFFUSE

    (5)  GLfloat light_ks : 影響亮光的地方    s=SPECULAR


2. 複製GLUT範例:

2-1. callback可以呼叫display、keyboard、mouse、motion 函式

2-2. 打光的程式碼 : 打光的陣列 and 打光的函式 => 159 ~ 172行

     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);


    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);


3. 複製第6周的light程式碼(打光的茶壺)


4. 複製source/lightmaterial的程式

4-1. 加上include "glm.h"程式碼 

    #include "glm.h"   /// 雙引號,引用同目錄裡的檔案

4-2. GLMmodel* pmodel = NULL; ///指到GLMmodel模型的指標,NULL(空指標)代表還沒好,*代表指標

4-3.

void

drawmodel(void)///用來畫3D模型的程式碼

{

    if (!pmodel) {

pmodel = glmReadOBJ("data/soccerball.obj");

if (!pmodel) exit(0);

glmUnitize(pmodel);

glmFacetNormals(pmodel);

glmVertexNormals(pmodel, 90.0);

    }


    glmDraw(pmodel, GLM_SMOOTH);

}


5. 畫我們的模型

    1. 將剛剛下載的data資料夾,整個放在工作目錄裡(freeglut/bin)

    2. 將下載並解壓縮的source資料夾的 glm.c 跟 glm.h複製,放在工作目錄裡(week08_model)

        再將glm.c的檔名改成.cpp

    3.  在display()裡 加上 drawmodel(); ///畫模型

                               註解 glutSolidTeapot(0.3); ///這樣就會跑出上面第8行的soccerball.obj()

                               ///在display()取代glutSolidTeapot()                                 ///足球模型

    4. 在codeblock的左邊week08_model按右鍵add files.../點week08_model/glm.cpp 加入

    5. 在Bulid and Run就可以看到足球模型了

6. v   : vertex頂點

    vn : 法向量

    f    : face面

    

    


沒有留言:

張貼留言

VERY BEAUTIFUL, VERY POWERFUL

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