電腦圖學
Topic 1 - 用3D Explorer開3D模型
(圖二)出處:老師用圖
(圖三)出處:老師用圖
(圖四)出處:老師用圖
(圖五)出處:老師用圖
(圖六)出處:老師用圖
(圖七)出處:老師用圖
(圖八)出處:老師用圖
(圖九)出處:老師用圖
(圖十)出處:老師用圖
(圖十一)出處:老師用圖
(圖十二)出處:老師用圖
(圖十三)出處:老師用圖
(圖十四)出處:老師用圖
(圖十五)出處:老師用圖
(圖十六)出處:老師用圖
(圖十七)出處:老師用圖
(1) 主題: 3D模型/3D Explorer
(2) 轉檔, OBJ模式(v,vt,vnf.)
(3) 期中考考題(10行 OpenGL Code)
(4) 小考:T-R-T
(5) 回家作業
到moodle下載3D Explorer 下載下來後並安裝(詳見圖一)
(圖一)出處:老師用圖
接著到jsyeh.org/3dcg10j網站下載 Source / data / glut32.dll / window三個資料夾 (詳見圖二)
接著把data資料夾解壓縮放到桌面開啟3D Explorer 查看data裡的3D模型
Topic 2 - 讀入自己想要的3D模型
解壓縮在source裡的三個檔案 分別是glm.h, glm.c transformation.c並開啟codeblocks glut 專案(project) P.s 請記得到moodle載freeglut檔案並完成相關手續(詳見圖四)
接著分別把三個檔案改檔名(glm.h, glm.c --> glm.cpp, transformation -> tran.cpp) (詳見圖五)
transformation.c改成 transformation.cpp (詳見圖六)
接著在codeblocks中加入剛剛改好的三個檔案 (詳見圖七)
匯入glm.h, glm.cpp, transformation.cpp 3個檔案 (詳見圖八)
記得要到codeblocks的 Setting中的 Compiler中取消第一項的勾勾 (詳見圖九)
請記得要Rebuild (詳見圖十)
然後把data資料夾複製 (詳見圖十一)
把data資料夾複製好後放進freeglut中的bin資料夾中 (詳見圖十二)
因為在transformation.cpp中已經有main函式了請把 main.cpp裡的程式清空 (詳見圖十三)
接著開啟程式~~~完成 (詳見圖十四)
----------------------------------------------------------分隔線-------------------------------------------------------
程式碼
#include "glm.h"
GLMmodel * pmodel=NULL;
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
if(!pmodel){
pmodel = glmReadOBJ("data/porsche.obj");
if(!pmodel) exit(0);
glmUnitize(pmodel);
glmFacetNormals(pmodel);
glmVertexNormals(pmodel,90.0);
}
glmDraw(pmodel, GLM_SMOOTH | GLM_MATERIAL);
glutSwapBuffers();
}
int main(int argc,char **argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("Week07 It's my 3D code");
glutDisplayFunc(display);
glutMainLoop();
}
---------------------------------------------------------分隔線--------------------------------------------------------
---------------------------------------------------------分隔線--------------------------------------------------------
詳細解說
程式碼 (請見圖十五)
自己用obj檔加入程式中 (詳見圖十六)
Q: 為什麼 #include "glm.h" 是用雙引號呢?
ANS: 因為在函式庫中並沒有glm.h這個東西 這是外掛所以使用雙引號 (詳見圖十七)

















沒有留言:
張貼留言