Week13
利用git clone將自己2023graphicsb的倉庫複製下來
接著利用codeblocks開啟上次的專案黨finalprojects
接著照著下面的圖片步驟做
接著將freeglut從老師給我們的資料夾
拉進去我們的專案檔
並且一樣複製一個libglut32
接著開啟git bash 把剛剛的檔案上傳
這樣freeglut就能順利上傳到github
接著開啟之前的week08檔案
將glb.cpp glb.cpp glb.h丟進去final project資料夾李
接著用codeblock開啟Final_Project.cbp
接著add file將glb.cpp
接著利用MAYA開啟模型
接著將頭 手 腳 身體分成幾個部位裁切
將程式碼修改下列程式碼
#include "glm.h"
GLMmodel * head = NULL;
GLMmodel * body = NULL;
GLMmodel * lefthand = NULL;
GLMmodel * righthand = NULL;
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
if(head==NULL){
head=glmReadOBJ("model/head.obj");
body=glmReadOBJ("model/body.obj");
lefthand=glmReadOBJ("model/lefthand.obj");
righthand=glmReadOBJ("model/righthand.obj");
}
glPushMatrix();
glScalef(0.3,0.3,0.3);
glmDraw(head, GLM_MATERIAL);
glmDraw(body, GLM_MATERIAL);
glmDraw(lefthand, GLM_MATERIAL);
glmDraw(righthand, GLM_MATERIAL);
glPopMatrix();
glutSwapBuffers();
加入這串
void keyboard(unsigned char key, int x, int y){
if(key=='0') show[0]= ! show [0];
if(key=='1') show[1]= ! show [1];
if(key=='2') show[2]= ! show [2];
if(key=='3') show[3]= ! show [3];
glutPostRedisplay();
}
下面改這樣
if (show[0]) glmDraw(head, GLM_MATERIAL);
if (show[1])glmDraw(body, GLM_MATERIAL);
if (show[2])glmDraw(lefthand, GLM_MATERIAL);
if (show[3])glmDraw(righthand, GLM_MATERIAL);
利用數字鍵的1 2 3 各自顯示不同部位
增加滑鼠移動功能
glPushMatrix();
glTranslatef(teapotX,teapotY,0);
if (show[0]) glmDraw(head, GLM_MATERIAL);
glPopMatrix();
另外加
int oldX=0, oldY=0;
void mouse(int button, int state, int x, int y){
if(state==GLUT_DOWN){
oldX = x;
oldY = y;
}
}
void motion(int x, int y){
teapotX += (x - oldX)/150.0;
teapotY -= (y - oldY)/150.0;
oldX=x;
oldY=y;
glutPostRedisplay();
}
最後面加int main
glutMotionFunc(motion);
執行結果如下
沒有留言:
張貼留言