Week09 閻覃的上課筆記
Week09 閻覃的上課筆記模型檔案Maya匯出OBJ檔案使用OpenGL展示模型glmReadOBJglmUnitizeglmFacetNormalsglmVertexNormalsglmDraw成果展示
模型檔案
Obj檔案存儲了一個模型的頂點、法向量等等信息。
開頭 | 英文名稱 | 中文名稱 |
---|---|---|
v | vertex | 頂點 |
vn | vertex normal | 法向量 |
vt | vertex texure coordnate | 貼圖坐標 |
f | face | 面 |
例如:
g null_ usemtl darksilver f 2//1 3//2 4//3 1//4 f 5//5 6//6 4//7 3//8 v -110.110603 193.228180 -5.218150 v -111.472328 194.029236 -2.386700 vn 0.290246 0.955310 -0.056030 vn 0.290246 0.955310 -0.056030
Mtl檔案存儲了材質信息
Maya匯出OBJ檔案
Google:obj glm youtube
可以找到小葉老師的教學影片
使用OpenGL展示模型
可以使用老師的樣例,稍作改動即可。
主要程式碼
171void display() {
2 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
3 glPushMatrix();
4 angle++;
5 glRotatef(angle, 0, 1, 0);//自動旋轉
6 if (!pmodel) {
7 pmodel = glmReadOBJ("IronMan/IronMan.obj");
8 if (!pmodel) exit(0);
9 glmUnitize(pmodel);
10 glmFacetNormals(pmodel);
11 glmVertexNormals(pmodel, 90.0);
12 }
13
14 glmDraw(pmodel, GLM_SMOOTH | GLM_MATERIAL);
15 glPopMatrix();
16 glutSwapBuffers();
17}
glmReadOBJ
使用GLM,讀入OBJ檔案,再判斷是否讀取成功,若不成功則為NULL,退出程式。
glmUnitize
單位化OBJ模型,使其適合我們的大小(最大為1)
glmFacetNormals
生成面的法向量
glmVertexNormals
生成點的法向量
glmDraw
畫出模型
成果展示
素材的地址:
沒有留言:
張貼留言