2018年4月9日 星期一

Week 06 陳泓丞第六周學習內容

NO.01

下載 jsyeh.org/3dcg10
[source] [data] [win32glut32.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


沒有留言:

張貼留言