MapReduce的概念
對於Google如此成功的模範,我很好奇它所用到的技術MapReduce,所以就整理了一些資料,還挺好理解的。話說原本系上開的高等作業系統,今年附加了一個名字「雲端運算」,授課老師表示一直上舊有的作業系統知識實在很無趣,於是打算在今年之後教點有關雲端運算的知識。這讓我超級羨慕!令人驚訝的是最近在教MapReduce相關的議題。
對於Google如此成功的模範,我很好奇它所用到的技術MapReduce,所以就整理了一些資料,還挺好理解的。話說原本系上開的高等作業系統,今年附加了一個名字「雲端運算」,授課老師表示一直上舊有的作業系統知識實在很無趣,於是打算在今年之後教點有關雲端運算的知識。這讓我超級羨慕!令人驚訝的是最近在教MapReduce相關的議題。
碩一已經修過高演,不過還是要寫作業XD~因為被老師委任為助教,而作業多為開放式題目,有標準答案的部份我要自己生出來,還好高演的作業都相當有趣,在作業剛發佈出來的時候就想來寫程式,哈~不過人性本惰(誤),到要改作業的時候才趕緊寫出來…… (繼續閱讀…)
現今多邊形的著色方法基本的有這三種:flat、Gouraud、Phong Shading,它們之間有何差別呢?喜歡玩遊戲的人一定要知道Gouraud Shading,這是PC最常使用的著色法,因為效能好、效果還不錯。而近年來,隨著GPU快速的發展,Phong Shading逐漸應用在更真實的著色上。
從一張圖可以看出他們的各自的特色:(a: Flat→b: Gouraud→c: Phong)
老師一再強調這學期計圖什麼都可以忘,但唯獨這一個渲染方程式 (Rendering Equation)不能忘!這一個方程式在1986年由Kajiya所提出,至今已經有1500篇論文引用,Ray Tracing(1980-An improved illumination model for shaded display(1564次引用))和Radiosity(1984-Modeling the interaction of light between diffuse surfaces(929次引用))的概念也可以由此方程式說明。上學期上自己老師的課聽不太懂 (因為英語授課),這一次老師用非常言簡意賅的方式解釋,加上圖解就十分好明白!
已經設定好OpenMP程式設計環境後,接下來就是實際來寫一則code,仔細分析thread們如何運作,在此我選擇積分這個主題,以梯形法則 (Trapezoidal Rule)來計算曲線下的面積。
學任何程式語言都要來Hello World,這裡OpenMP也不例外,在Microsoft Visual Studio 2010 Professional設定啟用OpenMP(可參考[OpenMP] Visual Studio 使用 OpenMP)之後,就可以編譯OpenMP的程式碼。
一開始我以為寫OpenMP需要安裝,就如同安裝OpenGL那樣,要把相關的.h、.lib、.dll檔丟到特定的資料夾,接著在專案中設定存取的相對位置,才能使用,不過那也是因為微軟「不想」支援OpenGL,我們才需要自己動手來「安裝」。好消息是微軟支援OpenMP,所以我們只要在專案特性中把OpenMP的選項打開即可寫OpenMP程式!
這篇文章要說是Visual Studio安裝OpenMP也是無妨!只要記得OpenMP已內建於Visual Studio中,我們只要去開啟它就能使用了!

這篇來講使用二元空間分割樹 (Binary Space Partitioning Tree)如何來畫一個場景,接續我撰寫的二元空間分割樹 (Binary Space Partitioning Tree)。
Binary Space Partioning Tree英文簡稱為BSP Tree,二元空間分割樹,簡稱為二叉樹。它於1969年被Schumacker在文章《Study for Applying Computer-Generated Images to Visual Simulation》首次提出,並被ID公司第一次使用到FPS遊戲Doom中,Doom的推出獲得了空前的成功,不僅奠定了ID公司在FPS遊戲開發的宗師地位,也使BSP技術成為室內渲染的工業標準,從BSP產生到現在已經有30多年了,其間雖然產生了大量的室內渲染的算法,但卻無人能撼動它的地位,對於以摩爾定律發展的計算機業來說這不能不是一個奇蹟。
HappyMan・迴響