2012年3月16日 星期五

作業一 - 元智大學一館2D外觀圖繪製

主題介紹:元智大學一館之超難畫的圓柱體

程式設計與寫作方法:
主要就是大量地使用 glBegin(GL_POLYGON),偶爾使用到 glBegin(GL_TRIANGLES)、glBegin(GL_LINES),以及 glBegin(GL_POINTS)。


這是我的參考圖:












一開始是先建構出一個一館的外觀模型:










一開始是使用兩個 glBegin(GL_POLYGON)來做模型。我之前用過 glBegin(GL_QUAD_STRIP)來做,但是若去換顏色的話,會變成漸層的效果,這並不是我要的,所以我選擇了用 glBegin(GL_POLYGON)來做模型。
好的,其實後來發現,從這邊開始就已經很不像原圖了,雖然我很想做出逼真的一館,但是你們應該也知道,到最後其實牽一髮動全身呀!


因為到目前為止所學有限,估狗神爺上面的資料雖然不算少,但是資料大多非常古老了。所以其實我的寫法是非常暴力,可以說是一點一線慢慢描繪出來的。


成果展示:










這是我的結果。我使用的glOrtho是以1000為單位,因為用預設1的話,我眼睛會脫窗。


左右兩邊的窗戶其實用幾個for迴圈,在微調一下就可以達成。


左邊的樹我很偷懶,先設定好範圍,用rand()取座標值,再用GL_POINTS來隨機亂點畫,至於點的大小是使用了 glPointSize(size)來決定大小。樹幹部分,是用glBegin(GL_POLYGON)做出來的結果。


花最多時間的或許就是那個圓柱體了。我一直在思考怎樣去表達圓弧的樣子,但是沒有用到更厲害的函式好像就做不太出來。最後我只能用顏色的深淺來分辨,這樣做就不太逼真;(


心得與討論:


這是我第一次用OpenGl,感覺真的很陌生又新鮮,陌生的是對他的語法完全不熟,新鮮的是,能夠用文字寫出一幅圖畫真的很有成就感!


這次的2D讓我認識了OpenGl一些基本的使用,雖然只是基本,但已經花掉我不少頭腦了哈哈!我覺得最困難的部分是座標的判斷、比例、以及顏色的調整,我畫到後來都是用小畫家來找座標。


相信學到最後,再回頭來看今天的作業,應該會很簡單吧!畢竟學到後面已經是3D的動畫了!很期待接下來的課程!