week10
先從jsyeh.org的3dcg10下載老師的範例
老師的網站網址(https://jsyeh.org/3dcg10/)
下載data win32
1.將window解壓縮並將data丟到window裡
2.開啟Transformation.exe
3.下載source.zip
4.把glm.h和glm.c拉到week10_glm(glm.c改名為glm.cpp)
#include <stdio.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);
}
glmDraw(pmodel , GLM_MATERIAL);
///glutSolidTeapot(0.3);
glutSwapBuffers();
}
int main(int argc, char**argv)
{
glutInit( &argc, argv );
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("week10");
glutDisplayFunc(display);
glutMainLoop();
}
最後圖形
鋼彈模型
新開一個GLUT專案,week10_glm_gundam
將glm.h、glm.c(記得檔名改成glm.cpp)放在week10_glm_gundam目錄裡
#include <stdio.h>
#include "glm.h" ///下載 source.zip有glm.h放在week10_glm_gundam目錄裡
///glm.c改檔名成glm.cpp放在week10_glm_gundam目錄裡
///把glm.cpp加到專案裡
///把模型(ex. Al.obj A.mtl)複製到工作目錄
///再把Gundam.obg Gundam.mtl Diffuse.jpg放到工作目錄
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);
///glutSolidTeapot(0.3);
glutSwapBuffers();
}
int main(int argc, char**argv)
{
glutInit( &argc, argv );
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("week10");
glutDisplayFunc(display);
glutMainLoop();
}
沒有留言:
張貼留言