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 }1314 glmDraw(pmodel, GLM_SMOOTH | GLM_MATERIAL);15 glPopMatrix();16 glutSwapBuffers();17}glmReadOBJ
使用GLM,讀入OBJ檔案,再判斷是否讀取成功,若不成功則為NULL,退出程式。
glmUnitize
單位化OBJ模型,使其適合我們的大小(最大為1)
glmFacetNormals
生成面的法向量
glmVertexNormals
生成點的法向量
glmDraw
畫出模型
成果展示

素材的地址:
沒有留言:
張貼留言