2014年4月10日 星期四

Week 08 葉正聖老師示範

1. 今天考期中考
2. 先把兩週前的進度回憶完成 (放個假, 大家應該忘光光了)
2.1. 畫出一個有彩色貼圖的 Teapot (請自己把地球的圖檔準備好)
2. 復習上週進度時, 要注意幾個重要事項:
2.1. 要裝好 兩個 glut_3.7.6_.DevPak 及 opencv-10.DevPak 這兩個紙箱
2.2. 要記得新增 glut 專案時, 在桌面上新增目錄 (同時把你的 earth.jpg 也放在那個目錄中)
2.3. 要記得把 C:\Dev-CPP\bin\opencv\ 裡面所有的 .dll 檔案, 都 copy 到你的專案目錄中
2.4. 記得加入咒語 Dev C++  Tool-Compiler 編譯器設定, 加入 Link 參數咒語 -lcv -lcxcore -lhighgui



3. 以後其實可以把貼圖相關的程式碼直接備份起來, 以後直接用!
//NEW
GLuint id;
IplImage * img = cvLoadImage("earth.jpg");
cvCvtColor(img, img, CV_BGR2RGB);
glEnable(GL_TEXTURE_2D);
glGenTextures(1, &id);
glBindTexture(GL_TEXTURE_2D, id);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_LINEAR);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, img->width, img->height, 0, GL_RGB, GL_UNSIGNED_BYTE, img->imageData);


4.


5. 利用考試教的 glRotatef(angle, x,y,z) 及 glPushMatrix() glPopMatrix() 做出會轉動的地球, 其中一直在改angle值的, 是 idle()函式, 有用 glutIdleFunc(idle) 註冊了!
6. 使用 Kinect 掃描出來的 3D 模型檔, 與原來的地球共存
7. 再畫一個圓錐當身體, 請注意裡面的 glPushMatrix() 與 glPopMatrix() 的保護範圍


沒有留言:

張貼留言