下載 jsyeh.org/3dcg10
[source] [data] [win32] glut32.dll
並解壓縮丟在同一資料夾裡,
照前幾周的步驟開好freeglut專案
NO.02
刪掉main裡的程式碼
NO.03
把資料夾中的 glm.c glm.h transformation.c 複製到專案的資料夾中,
並把附檔名 .c 改成 .cpp ,並執行看看main ( 此時理應顯示崩潰 )
NO.04
把data資料夾丟到 freeglut 資料夾裡的 bin 裡面,
再執行 main
NO.05
複製 transformation.cpp 裡面的下列程式碼
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);
並打完其餘程式碼
#include "glm.h"///glm的外掛
GLMmodel*pmodel=NULL;///指標
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);///以前教過的清畫面
if (!pmodel) {
pmodel = glmReadOBJ("data/porsche.obj");///這段負責畫3D的模型
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("05163046_Week07");
glutDisplayFunc(display);
glutMainLoop();
}
NO.06
執行結果
NO.07
沒有留言:
張貼留言