Just My Life & My Work

期初對Radiosity相當感興趣,於是期末project就選擇它來實做,以老師建議的code來做修改,我把它寫到OpenGL上去,接著顯示它顏色變化的結果。Radiosity的理論可以參考:Radiosity的概念 (Radiosity Concept)

下圖是較為複雜的場景,使用Radiosity技術畫出來的影像感覺相當真實吧!

參考的程式碼:

  • Progressive Radiosity by Eric Chen while he worked for Apple

使用的場景資料:

  • 18 polygons
  • 28 points
  • 51 patches
  • 2225 elements

DEMO

original scene

單純只有顏色的場景。

animation

單純顏色的Radiosity整個過程,從暗到亮。

texture

想要加上的貼圖。

radiosity

單純顏色的最終結果。

animation

加上貼圖後的過程。

final scene

加上貼圖後的最終結果。

最後的結果呢…並沒有看到影子耶!怎麼一回事?可是我真的把它運算的結果給顯示出來啊!1990年Apple員工所寫的code,怎麼沒有我想要的效果?就算把element提高到幾十萬,結果顯示一模一樣?!到底是哪裡出了亂子呢?抑或是演算法本身有問題?

儘管這次專案失敗,但卻不能抹滅我學到的事情,所以我還是把實做過程給記錄下來,未來就算再遇到類似的狀況,我也一定要如此做!

實做過程

剛開始雖然知道場景是柯內爾盒子 (CORNEL BOX),然而我卻不知道各個點的相對位置,我使用MatLab將各點的座標給畫出來,只有單一角度可能看不出來此場景是在三維空間。

可以看出柯內爾盒子這個場景被切割成好幾百個片面

我程式的繪圖順序從黑色(0)到白色(1)。

若順利的話,畫出來的結果本應該像這張圖:

可惜並不是啊~~~好遺憾!

參考資料

隨意留個言吧:)~

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料

標籤雲