1.作業回饋
2.作業需求
3.3D模型,glm.c(六行)
4.Maya轉OBJ檔
5.介紹資料影片資源
步驟大約如下:
- Create project→openGL
- Project Name:myModel
- (c)glm,(h)glm,(c++)main,(c)transformation拉到自己設的資料夾裡面
- 要開啟資料夾裡面的組合管理去勾選顯示副檔名

- 剪貼六行程式碼 (使用Notepad++複製)
#include "glm.h"
GLMmodel* pmodel =NULL;
int main()
{
pmodel=glmReadOBJ("data/porache.obj");
glmUnitize(pmodel);
glmFacetNormals(pmodel);
glmVertexNormals(pmodel,90.0);
}
執行結果出現小黑視窗即算成功
可是視窗還是有錯誤訊息,所以現在的步驟是結果那個錯誤訊息,
1.開啟freeglut的bin的資料夾,把windows裡的data project裡的porsche.mtl和porsche.obj拉進去
如圖:
2.Maya轉OBJ檔
輸入程式碼:
#include "glm.h"
GLMmodel* pmodel =NULL;
void display()
{
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
glEnable(GL_DEPTH_TEST);
glmDraw(pmodel,GLM_SMOOTH | GLM_MATERIAL);
glFlush();
}
int main(int argc, char**argv)
{
glutInit(&argc,argv);
glutCreateWindow("GLUT");
glutDisplayFunc(display);
pmodel=glmReadOBJ("porsche.obj"); 原本的data/porsche要改成porsche
glmUnitize(pmodel);
glmFacetNormals(pmodel);
glmVertexNormals(pmodel,90.0);
glutMainLoop();
}
3.再來是打光的步驟
加入打光程式碼:
#include "glm.h"
GLMmodel* pmodel =NULL;
void display()
{
GLfloat pos[]={0.0,0.0,1.0,0.0};
glLightfv(GL_LIGHT0,GL_POSITION,pos);
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
glEnable(GL_DEPTH_TEST);
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glmDraw(pmodel,GLM_SMOOTH | GLM_MATERIAL);
glFlush();
}
int main(int argc, char**argv)
{
glutInit(&argc,argv);
glutCreateWindow("GLUT");
glutDisplayFunc(display);
pmodel=glmReadOBJ("porsche.obj");
glmUnitize(pmodel);
glmFacetNormals(pmodel);
glmVertexNormals(pmodel,90.0);
glutMainLoop();
}
所以加入顏色~~~^^
#include "glm.h"
GLMmodel* pmodel =NULL;
void display()
{
GLfloat pos[]={0.0,0.0,-1.0,0.0};
glLightfv(GL_LIGHT0,GL_POSITION,pos);
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
glEnable(GL_DEPTH_TEST);
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glmDraw(pmodel,GLM_SMOOTH | GLM_MATERIAL);
glFlush();
}
int main(int argc, char**argv)
{
glutInit(&argc,argv);
glutCreateWindow("GLUT");
glutDisplayFunc(display);
pmodel=glmReadOBJ("porsche.obj");
glmUnitize(pmodel);
glmFacetNormals(pmodel);
glmVertexNormals(pmodel,90.0);
glutMainLoop();
}
修改一下色彩的亮度,執行結果
完成~~~~~~~ good!!
沒有留言:
張貼留言