2017年5月2日 星期二

Week 11

Week  11

主題: 
         (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();


沒有留言:

張貼留言