2024年4月1日 星期一

小韓電腦圖學日誌 week07

 ##下載上課範例

1-1 到https://jsyeh.org/3dcg10/ 

1-2 下載win32 跟data 還有source三個檔案

1-3 在下載的資料夾,把windows.zip =>windows資料夾

       把data.zip裡面的data拉到下載\windows資料夾裡

1-4 開啟Transformation.exe 按右上角右鍵切換到soccer



##研究/分析今天上課檔案

OBJ裡,有3個重要的英文單字縮寫

-v 代表 vertex頂點

-vn 代表 vertex normal 和打光相關的頂點法向量

- f 代表 面face  (有些人會拼成facet 比較小的面)

-解釋:3dxMax 習慣叫triangles三角形,執行時,快又有效率

- 在Maya動畫軟體裡,習慣用face (有三角形、四邊形、五邊形)

p.s usemtl XXX 使用 materail XXX

p.s g XXX 代表 group XXX分群組用的


 ##研究 Gundam 的模型

- 開啟 Gundam.obj

- Gundam.mtl

- Diffuse.jpg 是主要的 material 材質貼圖

- AO.jpg 是另外一張貼圖,今天不會用!



##week07-0_sample

安裝freeglut, 將lib\libglut.a 複製成libglut32.a

File-New-Project, GLUT專案 week07-0_sample

## week07-1 obj gundam

將source.zip 裡的glm.h 和 glm.c 解壓縮,再把glm.c 改成 glm.cpp

File-New-Project ,GLUT專案  week07-1 obj gundam

將glm.h 和 glm.cpp 放入 week07-1_obj_gundam同一目錄

放入11 行GLUT 程式

把GLM使用時,需要的三段程式放進來

#include "glm.h"
GLMmodel * pmodel = NULL;
void drawmodel(void){
    if(!pmodel){
        pmodel = glmReadOBJ("gundam.obj");
        if(!pmodel) exit(0);
        glmUnitize(pmodel);
        glmFacetNormals(pmodel);
        glmVertexNormals(pmodel,90.0);
    }
    glmDraw(pmodel,GLM_SMOOTH | GLM_MATERIAL);
}

glutSolidTeapot(0.3) 要改掉 改成drawmodel();

p.s 工作執行目錄要改一下,點專案按右鍵,選最下面的Properties 跳出視窗,選第二個Build 

targets , 把Execution working dir 工作執行目錄改成 小數點 .

(小數點 . 代表現在專案的目錄 桌面\week07-1_obj_gundam 目錄)

把 freeglut\bin\freeglut.dll 放進目錄,  桌面\week07-1_obj_gundam 目錄
把Gundam.obj Gundam.mtl  放進目錄,  桌面\week07-1_obj_gundam 目錄


##week07-2 obj gundam opencv texture

設定好OpenCV

安裝OpenCV-2.1, 要加入PATH, 用預設目錄

重開CodeBlocks ,設定貼圖的3 個設定 Settings-Compiler

在search directories 加入兩個目錄
    Complier 加入C:\OpenCV2.1\include
    Linker 加入 C:\OpenCV2.1\lib
在linker setting 裡,加入3 個 cv210 cxcore210 highgui210 

(模仿week07-1 的作法 ,全部再做一次)

File-New-Project , GLUT專案  week07-2 obj gundam opencv texture

把glm.cpp glm.h freeglut.dll Gundam.obj Gundam.mtl 放入這個目錄

Add files 加入 glm.cpp

再把 Diffuse.jpg 也放進去

貼入week07-1的程式碼

glutMainLoop()之前,也要加入 myTexture ("Diffuse.jpg");

最後,在最前面加入myTexture 對應的18行程式


##上傳 github 






沒有留言:

張貼留言