Just My Life & My Work

Archive for the ‘計算機圖學’ Category

卡通渲染 (Toon Shading)

計圖課程到了尾聲,當OpenGL已經學習到一個階段,老師還要教我們GLSL,也就是Shader,第一個例子就是卡通渲染 (Toon Shading)。哈~當時我搞不懂「toon」是什麼意思,原來是「卡通」!這樣子就很好想像,為何渲染結果會不真實,就不用怪罪Shader畫出來的品質好差XD~

Toon-shader

(繼續閱讀…)

[OpenGL] Visual C++ 安裝 OpenGL

之前習慣用Dev C++來寫OpenGL,是因為它小巧可愛,然而自從2005年開始,Dev C++ 4.9.9.2已不再更新(Dev C++ 已開始更新,所以可以參考我寫的Dev C++ 4.9.9.2 安裝 OpenGL 教學),這使得往後的OpenGL若有擴充函式庫,可能會產生無法相容的問題(必然會產生)。然而由Microsoft開發的Visual C++持續維護及更新中,不必擔心跟不上時代潮流,於是我以Visual C++ 2010 Express來安裝OpenGL

(繼續閱讀…)

DirectX與OpenGL

初學者想學繪圖程式設計,許多前輩都建議從OpenGL開始學習,我一開始就是學習OpenGL,發現只要會C語言,學習起來得心應手!未來倘若有必要(其實真有必要!)的話,一定要再學DirectX

(繼續閱讀…)

幾何著色器 (Geometry Shader)

上一篇介紹Shader可分為Vertex ShaderPixel Shader,這時候引進新的Shader(其實也不新了:PDirectX 10的Shader Model 4.0和OpenGL 3.2開始支援),它叫做Geometry Shader

(繼續閱讀…)

著色器 (Shader)

光看字面的意思「Shader」不知道是什麼玩意兒,硬翻成中文「著色器」似乎也難以摸著頭緒!剛開始接觸圖學的我完全搞不懂它有什麼作用,然後盲目地學著OpenGL:P直到老師說:「只要你學會Shader,就可以做到別人辦不到的效果。」哈~上學期末有教到,只是很意外地沒聽懂,雜務太多不是件好事呢!

(繼續閱讀…)

繪圖管線 (Rendering Pipeline)

還沒接觸電腦圖學之前,傻傻地以為繪圖只要交給軟體來做就好,完全忽略硬體這部份。然而其實軟硬體兩者都很重要,只有好的演算法沒有硬體加速,無法彰顯效能,而只有硬體加速而沒有好的演算法,無法發揮硬體的潛能。於此學習電腦圖學,有必要從基本的繪圖管線(Rendering Pipeline)瞭解起。

(繼續閱讀…)

高等計算機圖學期末專案—輻射度 (Final Project – Radiosity)

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

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

(繼續閱讀…)

柯內爾盒子 (Cornel Box)

柯內爾盒子 (Cornel Box)是普遍被拿來做全域照明測試的場景,1984年由柯內爾大學發展Radiosity演算法時所引進,自此之後,發展全域照明演算法的人們把柯內爾盒子當作測試標準。

Spectral rendering of the Cornell box

由光譜所繪製的柯內爾盒子,是我專案所要畫的最終目標。

(繼續閱讀…)

[C++] PPM影像檔輸出 (PPM image format output)

電腦圖學的人無不喜歡輸出的結果是一張圖,而不僅僅是文字!因此用C++來寫影像「Hello World」程式,是件基本且相當有趣的事情。

(繼續閱讀…)

直接照明和全域照明 (Direct Illumination and Global Illumination)

這一個禮拜一直在看輻射度Radiosity(2000年)這一篇詳細說明的文章,發現把它翻成中文比較好再三理解。首先把焦點放在直接照明全域照明定義以及優缺點上。

(繼續閱讀…)

標籤雲