##下載上課範例
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 目錄
安裝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
沒有留言:
張貼留言