week 07
1.主題:OBJ模型
2.obj檔、mtl檔、FBX檔
3.檔案格式:v頂點 vt頂點貼圖 vn頂點法向量
4.複習貼圖、glm模型
##下課上課範例
下載 sourse data win32
要研究data目錄
1.用Notepad++ 研究 soccerball.obj soccerball.mtl
2.解壓縮 windows.zip =>下載\windows\data\一堆模型檔
3.解壓縮 data.zip => 下載\windows\data\一堆模型檔
4.啟動 Transformation.exe 右上角,可切換3D模型
##研究/分析今天的檔案
OBJ裡,有3個重要的英文單字縮寫
-v 代表 vertex 頂點
-vn 代表 vertex normal 和打光相關的頂點法向量
-f 代表 面 face (有人會叫成 facet 比較小的面)
-解釋: 3dxMax 習慣叫 triangles三角形, 執行時,快又有效率
-在MAYA等動畫軟體裡,習慣用face(有三角形、四邊形、五邊形......)
-# 井號代表註解,是給人看得,不是給電腦看得
-其他: usemtl XXX使用material XXX
-其他: g XXX 代表 group XXX 分群組用的
-其他: mtllib Gundam.mtl 有另一個檔案叫Gundam.mtl 裡面有一堆 mtl
##研究 Gundam 的模型
-Gundam.obj
-Gundam.mtl
-Diffuse.jpg 是主要的 material 材質貼圖
-AO.jpg 是另一張貼圖,今天不用用他
## week07_0_sample
0. 安裝 freeglut,將lib\libfreeglut.a複製成libglut32.a
1.File-New-Project,GLUT專案,week07_0_sample
##week07-1_obj_gundam
0.先將source.zip 裡的 glm.h 和 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程式,放進來
#include <GL/glut.h>
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glutSolidTeapot(0.3);
glutSwapBuffers();
}
int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("week07-1_obj_gundam");
glutDisplayFunc(display);
glutMainLoop();
}
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_opencv_texture
設定好OpenCV
0.安裝opencv-2.,要加path,用預設目錄
1.重開codeblocks,設定貼圖的3個設定 settinga-compiler
1.1.在search directiories 加入2個目錄
1.File-New-Project,GLUT專案,week07-2_obj_gundam_opencv_texture
2.將 glm.h glm.cpp freeglut.dll Gundam.obj Gundam.mtl放入同一目錄
3.Add files 加入 glm.cpp
4.再把Diffuse.jpg也放進去
5.貼入week07-1的程式碼
glutMainLoop() 也要加入myTexture("Diffuse.jpg");
最後加入myTexture對應的18行程式 =>https://gist.github.com/jsyeh/5ed01210559721ec71b659b3ffed2dd7
沒有留言:
張貼留言