2009年6月4日 星期四

第一次寫Shader就上手

我還真是什麼都略懂一點,大概可以當金城武了吧。
雖然我研究所念Image & Graphics出來的,不過工作跟這完全無關,都忘光了XD。
這篇是拿來恢復信心用的。

這篇不是專業教學文,不會告訴你整個Graphics Pipeline的流程。請自行上網搜尋解答。
這篇說的指是冰山一角,整個Pipeline的中間地帶Pixel Shader,主要負責上色和處理其他屬性。

而我們用來開發的環境,也不需要Visual Studio 或 DirectX SDK,我們只需要一個軟體。
Media Player Classic 你沒看錯,就是播放軟體,我以中文版作為示範,開發一個Shader來玩玩。
要寫Shader,第一個要件就是你的顯卡至少要支援DirectX 9,至於Pixel Shader的演進史可以參照這裡

接著我們需要把MPC當中的Shader功能打開,功能表檢視->選項->播放->輸出的畫面如下所示︰

 

 

 

 

 

 

 

在選項中,需要將所有VMR9DirectX 9、 使用3d 文字表面和成像視訊圈選起來。按確定進行下一步動作。

接著同樣在檢視->Shader編輯下,開始我們的Shader之旅。

底下部份是讓你寫程式碼的,當你寫好之後,在右上方選擇Shader適用版本,然後左上方命名你要命名的Shader Name,一旦命名完按下Enter,此時就會幫你Compile程式碼,一旦成功了會出現D3DXCompileShader succeeded的字樣。

在此我們寫一個OnlyRed的例子︰

sampler s0 : register(s0);
float4 main(float2 tex : TEXCOORD0) : COLOR
{
    float4 color = tex2D(s0, tex);
    return float4(color.r, 0, 0, 1);
}

接著播放影片,在播放->Shaders裡挑選剛剛編譯過的程式碼。

以下為程式執行結果︰

感謝東方不敗擔任男主角。

沒有留言:

張貼留言

 

我們搬家了

新部落格在http://b-plurkers.com/