2020年5月5日 星期二

Week10 OBJ模型

體驗OBJ模型

開啟glut專案,把transformation.c內容放入main.cpp。
再把glm.c改成glm.cpp並加入專案中
再把data目錄放到freeglut的bin裡面
專案內需有glm.cpp、glm.h、transformation.c
就可以用codeBlocks跑出transformation了



glmDraw() 自己畫
#include <GL/glut.h>
#include "glm.h" ///使用外掛,glm.h需在專案同一目錄
GLMmodel * model=NULL; ///glm資料結構,先NULL空
void display()
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    if(model==NULL){ ///如果沒有模型
        model = glmReadOBJ("data/Al.obj"); ///讀入模型
        glmUnitize(model); ///Unit單位大小 -1...+1
        glmFacetNormals(model);  ///算facet法向量
        glmVertexNormals(model,90); ///推算Vertex法向量
    }
    glmDraw(model, GLM_SMOOTH | GLM_MATERIAL); ///畫模型
    glutSwapBuffers();
}
int main(int argc, char**argv)
{
    glutInit(&argc,argv);
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
    glutCreateWindow("Week11自己寫");

    glutDisplayFunc(display);

    glutMainLoop();
}
*自己加入打光*
glPushMatrix();
        glRotated(180,0,1,0); ///讓模型轉身
        glmDraw(model, GLM_SMOOTH | GLM_MATERIAL);
glPopMatrix();



沒有留言:

張貼留言