觀察課本範例
1. 下載課本的範例 https://jsyeh.org/3dcg10 win32、data、source
2. windows.zip 先解壓縮, data.zip 直接點開拉到windows資料夾
3. 分析data.zip裡的檔案
- Al.mtl:Ka Kd代表打光
- Al.obj:#代表註解、v代表頂點 (後面接著座標xyz)、f代表面 (後面接著頂點編號)、g代表group
範例檔:week08-0_sample
1. moodle下載 freeglut 拖到桌面
2. 把桌面\freglut\lib\libfreeglut.a 複製成 libglut32.a
3. CodeBlocks開GLUT專案, 目錄選桌面, 專案名取week08-0_sample
鋼彈模型:week08-1_glm_gundam
1. CodeBlocks開GLUT專案, 目錄選桌面, 專案名取week08-1_glm_gundam
3. 從課本範例 source.zip 中找到 glm.c / glm.h 兩個檔案並拉出來
4. 把 glm.c / glm.h 拉到 Desktop\week06-3_glm_obj_model 目錄裡, glm.c改名為glm.cpp
5. 在專案裡按右鍵新增 glm.cpp檔案
#include <GL/glut.h>
///這裡要插入三段程式碼
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glutSolidTeapot( 0.3 );
glutSwapBuffers();
}
int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("week08 gundam");
glutDisplayFunc(display);
glutMainLoop();
}
7. 在專案資料夾新增一個data資料夾, 把老師傳的兩個鋼彈模型檔案拖進來
8. 清除歷史餘毒, 要把工作執行目錄改成小數點(.)
9. 把 桌面\freeglut\bin\freeglut.dll 複製道專案目錄裡
#include "glm.h" ///加的程式,使用glm的程式碼
GLMmodel * pmodel = NULL; ///加的程式,有顆指標,指到模型檔
drawmodel(void)
{
if (!pmodel) {
pmodel = glmReadOBJ("data/Gundam.obj");
if (!pmodel) exit(0);
glmUnitize(pmodel);
glmFacetNormals(pmodel);
glmVertexNormals(pmodel, 90.0);
}
glmDraw(pmodel, GLM_SMOOTH | GLM_MATERIAL);
}
1. 安裝 OpenCV 2.1
- 安裝第三步驟, Add OpenCV to system PATH(勾第2或3個, 不要勾第1個)
- 目錄不要改,要用預設的
3. 在專案裡按右鍵新增 glm.cpp檔案
4. 清除歷史餘毒, 要把工作執行目錄改成小數點(.)
5. CodeBlocks 的 settings>compiler 加入 opencv 的3個設定
- Search directories > Compiler 要加上 C:\OpenCV2.1\include
- Search directories > Linker 要加上 C:\OpenCV2.1\lib
- Linker settings 要加上 cv210 / cxcore210 / highgui210
6. 貼上上一個專案的程式碼, 並在前面加上老師放在moodle的18行貼圖程式
7. 在 glutMainLoop(); 前貼上 myTexture("data/Diffuse.jpg");
8. 修改這行glmDraw(pmodel, GLM_SMOOTH | GLM_MATERIAL | GLM_TEXTURE);
9. 最後會出現有顏色的鋼彈
沒有留言:
張貼留言