2024年4月11日 星期四

電腦圖學week08

##期中考題

1.期中考試練習網址: https://jsyeh.org/gl/

2.必備10函式,作答評分完會給答案


##課本範例

1.https://jsyeh.org/3dcg10 下載data win32 source

2.分析一下 data.zip 裡的檔案 解壓縮

- Ai.mtl 看到裡面很多 Ka Kd 對應打光的 material 色彩

-  Al.obj 裡面很多內容

-  # 代表註解

- 可以再引用另一個mtl檔

- v 代表頂點 後面有座標 x y z

- f 代表 face 或 facet 後面有頂點的編號

- g 代表 group


##week08-0_sample

1. 桌面有「葉正聖老師上課用軟體」 freeglut 安裝(拉到桌面),再把 lib的 libfreeglut.a 複製成 libglut32.a

2. CodeBlocks File-New-Project, GLUT專案, week08-0_sample


##week08-1_glm_gundam

1.CodeBlocks File-New-Project, GLUT專案, week08-1_glm_gundam

2.要把source.zip裡面的 glm.h glm.c 都複製道專案資料夾裡,把 glm.c 改檔名成 glm.cpp



3.在專案裡,按右鍵 Add Files 把 glm.cpp 加入專案




4.把main.cpp 裡,改成11行的GLUT的簡單程式

接下來,要把Gundam模型 (Gundam.mtl Gundam.obj)嘉進專案目錄裡的data資料夾

5.要把專案的工作執行目錄,換成小數點





6.把 freeglut\bin\freeglut.dll 放進目錄 桌面\week07-1_obj_gundam 目錄

7.再改寫程式:

#include "glm.h"
GLMmodel * pmodel = NULL;

void drawmodel(void)
{
    if (!pmodel) {
        pmodel = glmReadOBJ("data/Gundam.obj");
        if (!pmodel) exit(0);
        glmUnitize(pmodel);
        glmFacetNormals(pmodel);
        glmVertexNormals(pmodel, 90.0);
    }
    glmDraw(pmodel, GLM_SMOOTH | GLM_MATERIAL);
}

void display()
{
    glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
    drawmodel();
    glutSwapBuffers();
}




##week08-2_glm_gundam_opencv_texture

0.安裝OpenCV 2.1記得要 Add PATH,不要改目錄

1.關閉重開 CodeBlocks(才會把PATH設定好。要記得存檔)

2.CodeBlocks File-New-Project, GLUT專案, week08-2_glm_gundam_opencv_texture

3.重做剛剛的 glm.h glm.c 放到目錄裡。把Gundam.obj Gundam.mtl及新的 Diffuse.jpg都放到data目錄裡




4.在專案裡,按右鍵 Add Files 把 glm.cpp 加入專案

5.要把專案的工作執行目錄,換成小數點



6.把 freeglut\bin\freeglut.dll 放進目錄 桌面week08-1_obj_gundam 目錄

7.把剛剛的 week08-1_glm_gundam 的程式全部拿來用,再加新的程式

另外在glutMainLoop();前 要加入

```cpp

    myTexture("data/Diffuse.jpg")

    glutMainLoop();

8.Setting-Compiler 要加入OpenCV 相關的3個設定

- compiler 的 include要加入 C:\OpenCV2.1\include


- linker 的 lib要加入 C:\OpenCV2.1\lib


- linker 設定,要加入 cv210 cxcore210 highgui210





9.改一下glmDraw(pmodel,GLM_SMOOTH | GLM_MATERIAL | GLM_TEXTURE);




##week08-3_glm_gundam_opencv_texture

1.CodeBlocks File-New-Project, GLUT專案, week08-3_glm_gundam_opencv_texture_lighting

2.在專案目錄裡加入data目錄,裡面有Gundam.obj Gundam.mtl Diffuse.jpg三個檔案

3.在專案目錄裡加入 glm.h glm.cpp freeglut.dll 三個檔案

4.專案設定 左邊 右鍵-最下面Properties 跳出來的第2頁,工作執行目錄 executable working directory設成小數點

5.專案右鍵-Add FIles,加入glm.cpp

6.最後在main.cpp裡,貼入week08-2_glm_gundam_opencv_texture的程式碼

7.再加入week08-0_sample裡的打光lighting程式碼8行陣列+12+2行的函示呼叫





沒有留言:

張貼留言