2012年6月17日 星期日

作業5: 3D動畫程式 - YZU Buildings

主題名稱: YZU Buildings


過程與成果展示: 







上圖為一館


上圖為二館

上圖為三館

上圖為五館

上圖為六館

上圖為七館

這次是把物件檔利用程式讀入,然後在displayfunction利用LookAt()讓它自己旋轉

並且在旋轉時會隨著view的變換,而光線對於物體有不同的影響。

而且一開始程式執行是顯示一館,如果要讓變換building的話可以按 'z' 往後選擇,  按 'x' 則是往前選擇。

以下是路燈的圖:









心得與討論: 


最後一個作業因為需要自己設計,想了好幾種主題卻都因為實作起來太雜而放棄。最後選擇較清晰且易懂秀出學校的建築物。不過不知道問題是什麼,光線總是會一閃一閃的,沒辦法讓很柔和的隨著旋轉而變化是比較可惜的地方。

2012年6月11日 星期一

Assignment #4 元智校園擬真3D空間場景

1. 結果畫面展示與討論


以下是我實作出來之後的畫面:


這是一開始的畫面
左邊是一館,右邊是三館
中間本來有步道以燈來模擬



面向的是五館,右邊六館左邊二館
而中間有圓環,裡面有字為"yzu"




另一個角度的二館與三館


中間為二館與三館間的石頭
三館的旁邊則是七館



接續之前的作業,

再加上把.obj loading進來,使得畫面得以呈現

而光源方面也是利用glLightfv等function來實作


2. 心得呈現

這次的作業中,雖然在題目有提示如何實作出顏色,

因為一般讀入物件之後,會變成黑色,

是一件令人很苦惱的事情。

不過找了許多相關的資料卻還是沒有解決囧。


在做某些物件的同時,需要用到google的sketch up軟體,

這軟體非常的好玩,而且也蠻好做出物體的,

只是裡面並沒有內建立體的圖形...一條線一條線畫也是蠻麻煩的。




2012年5月20日 星期日

Assignment #3 幾何轉換與看視

1. 結果畫面展示與討論


這是部分畫面的呈現:


程式一開始執行時show出一開始Usr所在的位置


以及各個系館的相對位置。






畫每個系館則是很簡單的利用一個cube()function


以及glTranslatef()glScalef()




而利用方向鍵可以前後左右任意移動


至於移動,也是利用sincos算出來的方向, 




綠色 — 一館
藍色 — 二館
紅色 — 三館
灰色 — 五館
黃色 — 六館
紫色 — 七館



上圖為不同角度所看的學校。



2. 心得呈現
 
在做這次的作業時,最大的問題是每個系館會因為移動而跑掉,


最後與同學討論之後,才慢慢解決這個問題。


不過因為是3D物件,反而一直畫不出在地板上的平面圖,


會一直被一開始設定的floor給蓋掉


所以最後只剩下灰灰的地板囧。


努力找出解決的方法,不然這樣看起來很醜!!

2012年4月22日 星期日

作業二 - 元智一館

程式設計的概念 : 運用OpenGL的技巧,讓作業一所畫出的元智一館能夠讓使用者可以從任一

角度觀看。






上圖為原始的元智一館 - 新概念。






而加入了可以使上圖翻轉的程式碼之後,




便可以可以任意翻轉致任何角度。








翻轉的程式最主要在於要記得滑鼠移動之後的座標,並且記錄。


如程式碼中的Mouse()以及MotionMouse()


Display時利用view這個函數來決定一開始使用者所看到的角度、最近以及最遠可以看到的


距離等等。


glRotated則是把現在的matrix去乘旋轉後的matrix。










心得與討論  : 


在實作翻轉的時候遇到了許多困難。就像上圖所顯現的,立體的一館反轉之後會變形,變得


不太像原本長方柱的樣子。而且只要移動,所有的圖形必須重畫,導致show出圖時會變慢。





2012年4月8日 星期日

作業一 - 元智一館







程式設計的概念 : 運用OpenGL的技巧,在2D平面下做出元智一館的意象圖。






圖中紅色區域部分表示正面看一館時的入口,


而我們都知道一館有七個樓層,因此使用黑線來分別樓層。


至於三樓、四樓中簍空的部分並不代表沒地板,


而是地板位於兩側,中間簍空。與一館的設計相同。


在截圖左邊有三個綠色的小方格,代表的是每個樓層中的實驗室。


由於是2D平面圖,因此內部構造尚無法完整的顯示出來,


在之後的3D模型中,有機會會實現。


灰色區域表示柏油路,而前方綠色區域表示草地。


以上皆是使用GL_POLYGON、GL_LINES等等所寫的










心得與討論  : 




直到修這門課之前,都不知道如何用程式來繪圖。第一次接觸OpenGL後才發現,原來是運用


些函式實作而成。雖然只是簡單的使用了GL_POLYGONGL_LINES等等,卻能夠畫出許多


同的圖案。參考許多資料之後,發現也能夠讓圖案變成3D的樣式並且旋轉,希望之後能


慢慢做到那一步。