(1) 組合出機器人
(2) 可轉動的關節
(3) 錄制動作
(4) 回家作業 : 機器人
----- ------ ------ ------ ------- ------ -------
課堂作業一 : 3D Exploration
下載3D Exploration 1.81免費試用版(4.5MB) : http://www.freespacemods.net/e107_plugins/download/download.php?view.129
搜尋3D Exploration
安裝檔案
開啟檔案
jsyeh.org/3dcg10 -> data.zip解壓縮3D模型
用3D Exploration 去看模型 EX: soccerball
匯出CPP (OpenGL) 程式 soccerball.cpp
匯出.cpp
Export Dialog裡 SampleAPP (才會有main( )函式)
用Notepad++觀察
CodeBlocks : File-New-Project . OpenGL專案
開啟OpenGL專案黨
偷天換日Remove移除main.c
把soccerball.cpp 複製到專案中
Add新增soccerball.cpp
選擇開啟soccerball.cpp檔
soccerball.cpp檔
F9 Build & Run 有2行錯誤.刪掉
會跳動如心臟的足球
完成圖檔
課堂作業二: 用3D Exploration 來拆模型
Save As : Wavefront OBJ檔 可調visible區域才存 Dolphins.obj -- Dolphins1.obj .mlt
Dolphins2.obj .mlt
Dolphins3.obj .mlt
- 三隻海豚分別匯出檔案:
選擇obj檔 和Visble
三個勾勾到要勾
把個別海豚模型的mlt .obj 檔案複製到myGLMsample-data裡
myGLMsample範例拿來用
安裝freglut在C:\user\user\Desktop\freeglut\lib\include\bin
把程式改成畫2隻海豚 :
(黃線為有增加或變更的程式碼)
↓ ↓ ↓
GLMmodel* pmodel = NULL;
GLMmodel* pmodel2 = NULL;GLMmodel* pmodel3 = NULL;
float angle=0;
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glPushMatrix();
angle++;
glRotatef(angle, 0,1,0);
if (!pmodel) {
pmodel = glmReadOBJ("data/dolphins1.obj");
if (!pmodel) exit(0);
glmUnitize(pmodel);
glmFacetNormals(pmodel);
glmVertexNormals(pmodel, 90.0);
}
glmDraw(pmodel, GLM_SMOOTH | GLM_MATERIAL);
if (!pmodel2) {
pmodel2 = glmReadOBJ("data/dolphins2.obj");if (!pmodel2) exit(0);
glmUnitize(pmodel2);
glmFacetNormals(pmodel2);
glmVertexNormals(pmodel2, 90.0);
}
glmDraw(pmodel2, GLM_SMOOTH | GLM_MATERIAL);
glPopMatrix();glutSwapBuffers();
}
完成圖
更改模型的大小 、方向、位置
glPushMatrix(); ///body
glTranslatef(0,0,0);
glRotatef(90,0,1,0);
glScalef(0.8,0.8,0.8);
glmDraw(pmodel, GLM_SMOOTH | GLM_MATERIAL);
glPopMatrix();
glTranslatef(0,0,0);
glRotatef(90,0,1,0);
glScalef(0.8,0.8,0.8);
glmDraw(pmodel, GLM_SMOOTH | GLM_MATERIAL);
glPopMatrix();
glPushMatrix();
glTranslatef(-0.5,0,0);
glScalef(0.4,0.4,0.4);
glTranslatef(-0.5,0,0);
glScalef(0.4,0.4,0.4);
glmDraw(pmodel2, GLM_SMOOTH | GLM_MATERIAL);
glPopMatrix();
glPopMatrix();
glPushMatrix();
glTranslatef(0.5,0,0);
glScalef(0.4,0.4,0.4);
glTranslatef(0.5,0,0);
glScalef(0.4,0.4,0.4);
glmDraw(pmodel3, GLM_SMOOTH | GLM_MATERIAL);
glPopMatrix();
glPopMatrix();
完成圖
可下載3D模型
下載模型需要註冊帳號























沒有留言:
張貼留言