https://jsyeh.org/3dcg10/下載windows、data兩個壓縮檔
將windows檔案解壓縮,再將data壓縮檔中的data檔案加入以壓縮windows檔案中
讀取模型,先下載[source],複製glm.cpp(原本是glm.c)、glm.h到GLUT程式的資料夾
複製glm.cpp、glm.h再把模型加入freeglut資料夾的bin
加入模型將glm.cpp加入GLUT程式
輸入程式碼
#include <GL/glut.h>#include "glm.h"
GLMmodel * pmodel = NULL;
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
if(pmodel==NULL)
{
pmodel = glmReadOBJ("Al.obj");
glmUnitize(pmodel);
glmFacetNormals(pmodel);
glmVertexNormals(pmodel, 90.0);
}
glmDraw(pmodel, GLM_MATERIAL);
glutSwapBuffers();
}
int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("GLUT Shapes");
glutDisplayFunc(display);
glutMainLoop();
}
把glm.c改成glm.cpp並加入檔案
#include <GL/glut.h>#include "glm.h"GLMmodel*pmodel=NULL;///有一個模型的指標,先是空的void display(){ glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); if(pmodel==NULL){ pmodel = glmReadOBJ("gundam.obj"); glmUnitize(pmodel); glmFacetNormals(pmodel); glmVertexNormals(pmodel, 90.0); } glmDraw(pmodel,GLM_MATERIAL); glutSwapBuffers();}
int main(int argc, char *argv[]){ glutInit(&argc, argv); glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH); glutCreateWindow("week10"); glutDisplayFunc(display); glutMainLoop();}
#include<opencv/highgui.h>#include <opencv/cv.h>#include <GL/glut.h>GLMmodel*pmodel=NULL;void display(){ glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); if(pmodel==NULL){ pmodel = glmReadOBJ("Gundam.obj"); glmUnitize(pmodel); glmFacetNormals(pmodel); glmVertexNormals(pmodel, 90); } glmDraw(pmodel,GLM_MATERIAL); glutSwapBuffers();}
int main(int argc, char *argv[]){ glutInit(&argc, argv); glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH); glutCreateWindow("week10"); myTexture("Diffuse.jpg"); glutDisplayFunc(display); glutMainLoop();}
#include<opencv/highgui.h>
#include <opencv/cv.h>
#include <GL/glut.h>
GLMmodel*pmodel=NULL;
void display()
{
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
if(pmodel==NULL){
pmodel = glmReadOBJ("Gundam.obj");
glmUnitize(pmodel);
glmFacetNormals(pmodel);
glmVertexNormals(pmodel, 90);
}
glmDraw(pmodel,GLM_MATERIAL);
glutSwapBuffers();
}
int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("week10");
myTexture("Diffuse.jpg");
glutDisplayFunc(display);
glutMainLoop();
}








沒有留言:
張貼留言