2012年6月17日 星期日

(一)主題介紹: Happy Bird
由angry bird 所得到的靈感而成
   

組員名單:
S981508 邱真智
S981515 徐   靖
S981519 吳宗倫
S981537 馮鳳儀

(二)過程與成就展示



(三)使用到的函式:
  glGenTextures(1, &texture[0]);
  glBindTexture(GL_TEXTURE_2D, texture[0]);
  glTexImage2D(GL_TEXTURE_2D, 0, 3, TextureImage[0]->sizeX,
  TextureImage[0]->sizeY, 0, GL_RGB,
  GL_UNSIGNED_BYTE, TextureImage[0]->data);
  glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);
  glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);

 最後使用LoadTexture 載入不同的圖片,來讓使用者選擇場景
(四)心得
最後一次作業我們是採用整組的方式進行,我負責寫介面的部分
大部分都是2D貼圖在加上鍵盤輸入以及滑鼠點擊等,來讓使用者選擇他所需要的場景
總而言之還有趣的,可以讓大家各司其職,寫不同的部分在進行結合,中間還需要大家互相協調、討論,才可以得出最後的作品。
       

2012年6月9日 星期六

(一)主題介紹: 元智3D漫遊 加上光線 
    
透過設定
  float light_diffuse[4] = {1.0, 1.0, 1.0, 1.0};  //散射光
  float light_ambient[4] = {1.0, 1.0, 1.0, 1.0};  //環境光
  float light_specular[4] = {0.5, 0.5, 0.5, 1.0}; //全反射光
  float light_position[4] = { 0 , 100, 0, 1.0 };  //位置

來調整,然後把光源放在正上方往下照射

(二)過程與成就展示



(三)使用到的函式:

      GLMmodel *glm_model[16];
     glm_model[0]= glmReadOBJ( "build.obj" );
     glmUnitize( glm_model[0] );
     glmScale( glm_model[0], 10 );
     glmFacetNormals( glm_model[0] );
     glmVertexNormals( glm_model[0], 90 );

    使用這項函式來load model

    在此之前要先建模,我是使用autodesk 3ds max  2013來建

    最後export .obj檔在匯入
         



(四)心得

        在建模上面的模型跟在glut內差很多,不管是顏色、形狀等等
        這次六館很奇怪,明明模型上面有的東西,放到glut上卻甚麼都沒有...
        可是我也無能為力,就只能當成一個缺憾摟
  

        這次顏色也搭的不是很好,不曉得是光線問題還是建模要注意甚麼...
        看來還是要多練習才行

2012年5月20日 星期日

(一)主題介紹: 3D漫遊
     先設定好gluLookAt()函式之後再調整觀看的位置來達到移動的目的


(二)過程與成就展示:



(三)使用到的函式:


      最主要使用glScalef() 來進行放大
                          glTranslatef() 來進行移動
                         利用glPushMatrix()及glPopMatrix()來限制放大或移動的物件


         
          



 (四)心得

        這次作業花太多的時間在研究gluLookAt ,在加上本身能力不足,繪圖能力不夠快。
最後只好勉勉強強的用幾個方塊畫出大概的樣子,也沒有時間去做偵測碰撞的函式....
看來我應該要多多練習如何用最短的時間畫出漂亮的大樓才行

2012年4月25日 星期三

(一)主題介紹: 3D元智一館: 資工的大本營
     我先用GL_QUADS畫出長方體來當作一館主體,剩下的在用GL_POLYGON來進行細部的描繪


(二)過程與成就展示:



(三)使用到的函式:


         
          glRotatef();          //旋轉用

          glTranslatef();     //平移物件
          glPushMatrix();  //開始控制物件的矩陣
          glPopMatrix();   //結束控制物件的矩陣


          GLUquadricObj   *obj;      
         obj   =   gluNewQuadric();
         gluCylinder();     //畫圓柱體


         float x,y;
         float radius = 0.1f;
        glBegin(GL_POLYGON);
        glColor3f(0.6,0.6,0.6);
        x = (float)radius * cos(359 * PI/180.0f);
        y = (float)radius * sin(359 * PI/180.0f);
        for(int j = 0; j < 360; j++)
       {
             glVertex2f(x,y);
             x = (float)radius * cos(j * PI/180.0f);
             y = (float)radius * sin(j * PI/180.0f);
            glVertex2f(x,y);
       }     //畫平面圓 , 用來遮住圓柱體的上下面


(四)心得


        這次作業實際上我畫了兩次,因為畫完的時候不小心把桌面上的.cpp檔刪掉了....(我的dev跟cpp是分開的)。可是卻也因此發現,我第一次畫跟第二次畫所花的時間相差約兩倍,第一次約花費五個多小時,可是第二次卻花不到兩個多小時就完成了,我想應該是我有經驗了,所以才可以如此迅速吧。

2012年3月18日 星期日


(a)   主題介紹

元智一館立體圖



(b)   過程與成果展示                                              

           這是我的第一個計圖作業,也是我第一次使用Dev-c++ 這項新的編譯工具,過程中我幾乎都使用GL_POLYGON慢慢描點,我先在紙張上想出可能的點,之後在程式上慢慢的試,最後因為我不太會話圓形,所以我只好使用for迴圈慢慢描,讓他可以看起來不要這麼的直,而產生曲線的感覺。



(c)    心得與討論

         這次的作業其實還蠻好玩的,只可惜我沒有學過甚麼構圖的概念,也沒有色彩的概念,在加上又是第一次做,做出來的成品不甚理想,希望下一次作業可以做出自己滿意的作品。