2012年6月17日 星期日

作業5 3D遊戲程式 Happy bird

(一)主題介紹
       我們這組是製作一個類似於手機程式Angry Bird的3D,比較大的差異是我們製作的是3D版本,在外形上的差異鳥也不再憤怒,變成笑臉了。
(二)設計概念
       程式的設計方面幾乎用到了這學期所有學到的技巧如lighting、Texture mapping、Object loading、Transformation,操作畫面如下:
起始畫面:
點選進入之後選擇背景:
遊戲背景有3種,可用方向鍵變更選項
進入遊戲畫面後
滑鼠按住鳥往後拉,移動滑鼠可以進行瞄準,放開即射出:



最後遊戲結束畫面:
(程式以後可能會再進行修改,如有修改會再補上)

(三)心得
      這次作業的project應用到很多這學期學到的技術,老師有提供分組讓我們可以互相合作,負責不同的部分,才可以做出有這種規模的程式,感覺還蠻有趣的,也謝謝同組組員們的幫忙。

2012年6月11日 星期一

作業4 元智3D場景漫遊

(一)主題介紹 元智3D場景漫遊
                      
                   藉由程式碼設定光源:
                    散射光 :float light_diffuse[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 };
                    讓場景產生明暗度看起來更加真實
(二)成果展示:


藉由3ds max做出的模型轉成obj檔後,使用以下函式將模組載入程式碼

     GLMmodel *glm_model[16];
     glm_model[0]= glmReadOBJ( "1.obj" );
     glmUnitize( glm_model[0] );
     glmScale( glm_model[0], 10 );
     glmFacetNormals( glm_model[0] );
     glmVertexNormals( glm_model[0], 90 );
     id[0] = glmList( glm_model[0], GLM_MATERIAL | GLM_SMOOTH );
     glmDelete( glm_model[0] );

(三)心得 
               3ds max由於是第一次使用,用的不太順手,在時間跟技巧的問題下沒辦法畫得非常精細,而且載入後從程式輸出的結果部分有些角落的明暗度有點怪怪的,不知道是哪邊設定上出了問題。

2012年5月21日 星期一

作業3 元智校園3D

A.主題介紹
     元智校園 3D
B.程式設計與寫作方法
    先在原點畫出3D圖形,再經由glScalef()調整建築大小比例,然後使用glTranslatef()來把圖形調整到適當的位置,以下為程式執行結果,可以經由方向鍵調整視點位置。

C.心得:
這次是首次使用glScalef()函式,比例的調整花了我不少時間,也是第一次在一空間內同時畫多個圖形並用glTranslatef()來調整個圖形的相對位置,因為不太熟練所以建築只用簡單的形狀表示。

2012年4月30日 星期一

作業二 元智一館3D

A.主題介紹
        3D 元智一館
B.程式設計與寫作方法
        先使用GL_QUADS畫出一6面的長方體為本體,在用GL_POLYGON進行窗戶等細部的描繪
 執行結果如以下影片所示:
   
C. 心得
        這是第2次使用OPENGL來繪製圖形,但是第一次話3D圖形,整體畫下來覺得座標的定位相較於2D的相比反而較為簡單,但我畫的3D圖還是有些問題,希望能在我對OPENGL更熟練之後解決。

2012年3月19日 星期一

A.主題介紹
            計圖作業一 元智一館

B.過程與成果展示
      
      
   上面這張是我的參考圖片

   下面這是成果


使用的編譯程式為DEV C++ 程式裡使用多個GL_POLYGON組成

C.心得與討論
       這是我第一次使用OPENGL,所以可能成果不是很理想,過程中最主要的難題大概是座標的定位,希望能越來越熟練,寫出讓自己更滿意的作品