1.
step1: 下載 freeglut-MinGW-3.0.0-1.mp.zip
step2: 進到資料夾,把檔案 freeglut 拉到桌面
step3: 點進 freeglut 👉 lib 資料夾
step4: 複製 libfreeglut.a 並且改名為libglut32.a
step5: 安裝 OpenCV 要勾 Add PATH (第二個),裝在預設目錄
👉 Setting-Compiler 裡,要把 OpenCV 的三個設定設好
👇
(1) 重開 CodeBlocks
👇 原本的檔案在 View 👉 Start Page
(2) 在 Search directories 加入2個目錄
1-1 Compiler 👉 C:\OpenCV2.1\include
1-2 Linker 👉 C:\OpenCV2.1\lib
(3) 在 Linker setting 裡,加入 👉 cv210
👉 cxcore210
👉 highgui210
step6: 把上週 week11 的程式碼拿下來
step7: 複製 week11-3_obj_gundam_hand1_hand2 到桌面
step8: 改目錄名 week12-1_obj_gundam_hand1_hand2
step9: 把 .cbp,改檔名 week12-1_obj_gundam_hand1_hand2.cbp
step10: 再用 CodeBlocks 的 File-Open 開啟剛剛的 .cbp 檔
step11: 在專案名稱上按右鍵,選最下面的 Properties,進去改檔名
step12: 存檔 File-Save project
step13: 修改程式碼
👉void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glutSolidSphere( 0.1, 30, 30);
glutWireCube(0.6);
glPushMatrix();
//glRotatef(angle++, 0, 1, 0);
glTranslatef(-0.3, 0.3, 0); ///掛到肩上
glRotatef(angle++, 0, 0, 1); ///轉動
glTranslatef(0, -0.3, 0); ///把旋轉中心,放正中心
drawhand1(); ///glutSolidTeapot( 0.3 );
glPopMatrix();
glPushMatrix();
//glRotatef(angle++, 0, 1, 0);
glTranslatef(0.3, 0.3, 0); ///掛到肩上
glRotatef(angle++, 0, 0, 1); ///轉動
glTranslatef(0, -0.3, 0); ///把旋轉中心,放正中心
drawhand2(); ///glutSolidTeapot( 0.3 );
glPopMatrix();
glutSwapBuffers();
}
2.
step1: 複製 week12-1_obj_gundam_hand1_hand2
step2: 改目錄名 week12-2_obj_gundam_upper_lower_hand
step3: 把 .cbp,改檔名 week12-2_obj_gundam_upper_lower_hand.cbp
step4: 再用 CodeBlocks 的 File-Open 開啟剛剛的 .cbp 檔
step5: 在專案名稱上按右鍵,選最下面的 Properties,進去改檔名
step6: 存檔 File-Save project
step7: 修改程式碼,多宣告兩個指標 👇
GLMmodel * upper = NULL;
GLMmodel * lower = NULL;
step8: 再把 drawmodel() 複製兩份,drawUpper(){...}、drawLower(){...}
step9: 裡面的 pmodel 都改成 upper、lower
step10: 利用 Maya 登入,File-Import-hand1.obj
step11: 裁切成上、下手臂,各自存成 upper.obj、lower.obj
step12: 修改程式碼 👇
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
///glutSolidSphere( 0.1, 30, 30);
///glutWireCube(0.6);
glPushMatrix();
drawUpper();
glPushMatrix();
glTranslatef(0, -0.01, 0); ///掛到肩上
glRotatef(angle++, 1, 0, 0); ///轉動
glTranslatef(-0.02, -0.2, 0); ///把旋轉中心,放正中心
drawLower(); ///glutSolidTeapot( 0.3 );
glPopMatrix();
glPopMatrix();
glutSwapBuffers();
}
3.
step1: 複製 week12-2_obj_gundam_hand1_hand2
step2: 改目錄名 week12-3_obj_gundam_body_upper_lower
step3: 把 .cbp,改檔名 week12-3_obj_gundam_body_upper_lower.cbp
step4: 再用 CodeBlocks 的 File-Open 開啟剛剛的 .cbp 檔
step5: 在專案名稱上按右鍵,選最下面的 Properties,進去改檔名
step6: 存檔 File-Save project
step7: 利用 Maya ,切出身體
step8: 補上程式碼 👇
GLMmodel * body = NULL;
step9: 再把 void drawBody() 複製出來,改用 body.obj 和 body body body
step10: 修改程式碼 👇
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
///glutSolidSphere( 0.1, 30, 30);
///glutWireCube(0.6);
glPushMatrix();
glRotatef(180, 0, 1, 0);
drawBody();
glPushMatrix();
glTranslatef(-0.15, 0, 0);
glRotatef(angle++, 1, 0, 0);
glTranslatef(-0.025, -0.05, 0);
drawUpper();
glPushMatrix();
glTranslatef(0, -0.1, 0); ///掛到肩上
///glRotatef(angle++, 1, 0, 0); ///轉動
glTranslatef(-0.02, -0.2, 0); ///把旋轉中心,放正中心
drawLower();
glPopMatrix();
glPopMatrix();
glPopMatrix();
glutSwapBuffers();
}
step11: 修改程式碼,控制旋轉大小(舉手)
4.
step1: 複製 week12-3_obj_gundam_hand1_hand2
step2: 改目錄名 week12-4_keyboard_angleID_mouse_motion_angle
step3: 把 .cbp,改檔名 week12-4_keyboard_angleID_mouse_motion_angle.cbp
step4: 再用 CodeBlocks 的 File-Open 開啟剛剛的 .cbp 檔
step5: 在專案名稱上按右鍵,選最下面的 Properties,進去改檔名
step6: 存檔 File-Save project
step7: 修改程式碼,利用滑鼠、鍵盤控制 👇
(1)void keyboard(unsigned char key, int x, int y){
if(key=='0') angleID = 0;
if(key=='1') angleID = 1;
if(key=='2') angleID = 2;
if(key=='3') angleID = 3;
}
(2)void motion(int x, int y){
angle[angleID] = y;
glutPostRedisplay();
}
(3)main() 裡,加入 👉 glutKeyboardFunc(keyboard);
👉 glutMotionFunc(motion);
(4)前面的 float angle=0 改成用陣列來做事 👉 float angle[20];
👉 int angleID = 0;
(5)display 裡,改成 angle[0]、angle[1]
沒有留言:
張貼留言