
Step01-1
到https://jsyeh.org/3dcg10/下載win32和data 分別解壓縮後把data丟到windows 打開Transformation.exe
Step01-2認識3D模型
打開data裡的obj檔和mtl的Notepad++
V=Vertex頂點, vN=Normal打光的法向量,vT=Translate移動
Step01-3認識obj格式的Wiki
公司歷史wavefront->alias(開發maya)->Autodesk
Step02-1
開啟GLUT專案名稱week10_glm 10行茶壺程式貼上
#include <GL/glut.h>
#include "glm.h"
void display()
{
glBegin(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glutSolidTeapot( 0.3 );
glutSwapBuffers();
}
int main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("week10");
glutDisplayFunc(display);
glutMainLoop();
}
執行圖為茶壺為正確
把source glm.c改成glm.cpp,把glm.h和glm.cpp丟進week10_glm資料夾
開啟glm.cpp檔案
到Bulid log 最底下有
C:\Users\Administrator\Desktop\freeglut\bin
到檔案總管找到上方地址的資料夾
把data的檔案全丟進去
回到codeblocks 打出下方程式
#include <GL/glut.h>
#include "glm.h"
GLMmodel * pmodel =NULL;
void display()
{
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
if(pmodel==NULL)
{
pmodel = glmReadOBJ("Al.obj");
glmUnitize(pmodel);
glmFacetNormals(pmodel);
glmVertexNormals(pmodel, 90);
}
glmDraw(pmodel, GLM_MATERIAL);
glutSwapBuffers();
}
int main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("week10");
glutDisplayFunc(display);
glutMainLoop();
}
執行後會得到一個人物模型為成功

Step03-1
開啟一個新專案 名稱week10_glmgundam
把剛剛bin資料夾加入gundam的的模型資料
把上個main程式複製過來,把al.obj改成Gundam.obj
第7周把OpenCV的設定弄一遍
下載opencv2.1
5個咒語分別設定
複製第7周的貼圖程式
複製到glmgundam上面
在32行改成glmDraw(pmodel, GLM_MATERIAL| GLM_TEXTURE);
新增一行(在int main()裡面)
myTexture("Diffuse.jpg");
執行就能看到gundam貼圖的模型,為完成,最後上傳github
沒有留言:
張貼留言