2024年4月1日 星期一

H week07

 #下載上課範例

https://jsyeh.org/3dcg10/

下載 source data win32

1 用Notepad++研究 soccerball.mtl soccerball.obj

2 解壓縮 windows.zip => 下載\windows\Transformation.exe

3 解壓縮 Data.zip => 下載\windows\Data\一堆模型檔

4 啟動Transformation.exe 右上角可切換3D模型


#研究今天的檔案

OBJ中,有3個重要英文縮寫

- v代表 vertex

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

-f 代表face

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

-在MAYA等動畫軟體中,習慣用face (有三角形,四邊形,五邊形) 

-其他: usemtl xxx 使用 material xxx

-其他: g xxx 代表 group xxx 分群組用的


#研究 Gundam的模型

-Gundam.obj

-Gundam.mtl

-Diffuse.jpg 是主要的material 貼圖

-AO.jpg 是另一張貼圖,今天不使用

-研究Gundam.obj裡面有v頂點,vt頂點貼圖座標,vn頂點法向量

-f是face, 裡面有兩個斜線 v\vt\vn標註三個對應的參數


#week07_0_sample

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

File\New\Project GLUT專案 week07_0_sample


#week07-1_obj_gundam

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

1.File-New-Project, GLUT專案week07-1_obj_gundam

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

3.CodeBlocks的week07-1_obj_gundam專案按右鍵,Add把glm.cpp加入

4.把11行GLUT程式,放進來

5.把glm使用時,需要的3段程式放進來


1.專案,按右鍵,選最下面的Properties,跳出視窗,選第2個Build targets

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

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

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

5.把Gundam.obj Gundam.mtl 放進目錄 桌面\week07-1_obj_gundam目錄


#week07-2_obj_gundam_lighting

#week07-3_obj_gundam_opencv_texture

設定好OpenCV

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

1.重開 CodeBlocks, 設定貼圖的3個設定 Setting-Compiler

1.1.在Search directories 加入2個目錄

-Compiler 加入 C:\OpenCV2.1\include

-Linker 加入C:\OpenCV2.1\lib

1.2.在Linker setting 裡,加入3個 cv210 cxcore210 highgui210

模仿剛剛的做法,全部都再做一次,

1.File-New-Project, GLUT專案week07-2_obj_gundam_opencv_texture

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

3.Add files加入glm.cpp

4.再把Diffuse.jpg也放進去

5.貼入week07-1的程式碼

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

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

沒有留言:

張貼留言