主題:
(1) 組合出機器人
(2) 可轉動的關節
(3) 錄製動作
(4) 回家作業:機器人
課堂作業 : 3D Exploration
(1) 1.81免費試用版 (4.5MB) 安裝
(2) jsyeh.org/3dcg10 下載 data.zip姐在桌面\data
(3)用3D Exploration 去看(2)模型 ex.succerball
(4)匯出(Save As) cpp(Open GL)程式 soccerball.cpp→用Notepad++觀差
Export Dialog裡SampleAPP(才會有main函式)
(5)CodeBlocks, File-New-Project , OpenGL專案
偷天換日 Remove移除main.c Add新增soccerball.cpp
Build&Run,有兩行錯誤刪掉
/// (LPLOGPALETTE) lpPalette = (LPLOGPALETTE)HeapAlloc (hHeap, 0,
/// sizeof (LOGPALETTE) + (nColors * sizeof (PALETTEENTRY)));
課堂作業 : 用3D Exploration來拆模型
(1)Save As:Wavefront OBJ檔 可調Visible區域才有Dolphins.obj→{Dolphins1.obj.mtl
→{Dolphins2.obj.mtl
→{Dolphins3.obj.mtl
(2)myGLMsample範例 拿來用
安裝freglut 在 C:\users\user\Deskiop\freglut\lib\include\bin
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);
(2)-1
把程式改成化2隻海豚
小心 data目錄裡要有Dolphins1.obj.mtl Dolphins2.obj.mtl Dolphins3.obj.mtl
新增 GLMmodel* pmodel2 = NULL;
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);
(3)把3隻海豚分開擺放
glPushMatrix();
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);
glmDraw(pmodel2,GLM_SMOOTH|GLM_MATERIAL);
glPopMatrix();
glPushMatrix();
glTranslatef(0.5,0,0);
glScalef(0.4,0.4,0.4);
glmDraw(pmodel3,GLM_SMOOTH|GLM_MATERIAL);
glPopMatrix();
沒有留言:
張貼留言