電腦圖學 2023-04-19 Week10
1. 期中考-OpenGL必背10函式2. 主題: 3D模型
3. 主題: OBJ檔
4. 主題: glm.h glm.cpp
5. 實作: Gundam 剛彈模型
///下載source.zip > glm.h > 複製 > 放到week10glm目錄裡
///glm.c改檔名glm.cpp放在week10glm目錄裡
///把glm.cpp加到專案裡
///把模型檔 data裡的模型 > 複製 > 放到freeglut > bin
///Build log最後一行會說它在哪裡(in C:\User\...\freeglut\bin)
#include <GL/glut.h>
#include "glm.h"
GLMmodel * pmodel=NULL;///有一個模型的指標,先是空的
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
if(pmodel==NULL){ ///複製source > transformation.c > 159行至167行
pmodel=glmReadOBJ("Al.obj");
glmUnitize(pmodel);
glmFacetNormals(pmodel);
glmVertexNormals(pmodel, 90);
}
glmDraw(pmodel,GLM_MATERIAL);
// glutSolidTeapot(0.3);
glutSwapBuffers();
}
int main(int argc, char**argv)
{
glutInit( &argc, argv );
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("week10glm");
glutDisplayFunc(display);
glutMainLoop();
}
設定(參考week07)
week10_glmgundam
///copy from week10glm
#include <GL/glut.h>
#include "glm.h"
GLMmodel * pmodel=NULL;
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
if(pmodel==NULL){ ///下載source > transformation.c > 複製159行至167行
pmodel=glmReadOBJ("Gundam.obj");///step03
glmUnitize(pmodel);
glmFacetNormals(pmodel);
glmVertexNormals(pmodel, 90);
}
glmDraw(pmodel,GLM_MATERIAL | GLM_TEXTURE);
// glutSolidTeapot(0.3);
glutSwapBuffers();
}
int main(int argc, char**argv)
{
glutInit( &argc, argv );
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("week10");
myTexture("Diffuse.jpg");
glutDisplayFunc(display);
glutMainLoop();
}
安裝Git GitBash
沒有留言:
張貼留言