英吋 XNA

XNA – HLSL淺嚐

接下來的工作是要將特效加入遊戲中。
那麼,不可或缺的就是告示板(Billboard)技術的加入。
Club上的Billboard的技術範例…
Ziggyware的Billboarding Sprites
兩者都須使用特定的FX(Effect)來繪製,要了解流程,也就等同於要了解一些HLSL的語法了…
在我的邏輯中,Billboard理論上應該不一定非得經過自訂的繪圖流程,不過他們不約而同都使用,或許有些考量吧~

嘛~
這篇重點不在Billboard,回歸正題…


HLSL(High Level Shader Language)

XNA中的HLSL简单应用
XNA Kick Start (四)

前者的文章真的是一目瞭然阿!真是太棒了!
後者就當成補充教材了

其中HLSL最重要的code就是這段:

// 宣告一個4×4矩陣。傳入的參數是世界、觀察、投影矩陣的值。
Float4x4 mWorldViewProjection;

// 定義一個VertexShader函數做為進入點。
// 返回值的語意(smeatics)設為POSITION。
float4 vs_main(float4 position:POSITION):POSITION
{
  // 將傳入的頂點與世界觀察矩陣相乘,作為頂點的轉換。
  return mul(position,mWorldViewProjection);
}

// 定義一個PixelSharder含樹做為進入點。
// 返回值的語意設為COLOR0。
Float4 ps_main():COLOR0
{
  // 永遠返回純白色作為顯示顏色。
  Return float4(1,1,1,1);
}

// 開始定義Technique
technique technique1
{
  // 一個pass
  pass pass0
  {
    // 將VertexShader的版本設為1.1,並設定vs_main為執行函數。
    VertexShader=compile vs_1_1 vs_main();
    // 將PixelShader的版本設為1.1,並設定ps_main為執行函數。
    PixelShader=compile ps_1_1 ps_main();
  }
}

如何在XNA裡面使用自訂的Technique來繪製等等,看這兩篇大致上就差不多了。
後者clayman大大另外還有翻譯一本《The Complete Effect and HLSL Guide》,似乎還不錯,有興趣可以去看看。
《The Complete Effect and HLSL Guide》翻译连载(一)

嘛~這篇只是淺嘗,就到此為止吧XD

–End

One comment

  1. NaCl 你好: 我是點部落的Dotjum,目前點部落再舉辦 XNA 修練大會, 修練大會 是一場以分享技術文章的交流活動, 在活動期間,分享指定主題(Silverlight , XNA , Robotics )的技術文 章, 讓參與的朋友能互相的進步及討論,就能有機會得到修練大獎 XBOX 360 , 西提牛排禮券。 誠摯的邀請你來一起來共襄盛舉,一起與其他XNA分享的同好討論與給大 家鼓勵與支持。 詳細活動資訊請連至活動網站 : http://study.dotblogs.com.tw/default.aspx

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Google photo

您的留言將使用 Google 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.