2024年4月1日 星期一

week07 Tina

week 07

1.主題:OBJ模型

2.obj檔、mtl檔、FBX檔

3.檔案格式:v頂點 vt頂點貼圖 vn頂點法向量

4.複習貼圖、glm模型


##下課上課範例

jsyeh.org/3dcg10

下載 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個目錄

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

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


模仿剛剛week07-1的作法,全部都再做一遍

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


沒有留言:

張貼留言