這邊推薦兩個方便實用的程式碼,這樣可以節省一些不必要的時間,一個是負責控制攝影機的類別,一個是幫你畫出平面的板子。平面的板子可以方便你做一些額外的處理(像是Deferred Shading和texture space的操作等等,相當好用)

1. Camera.cs
    camera類別主要是用來負責控制攝影機的,此類別是繼承GameComponent。
    同時,Camera.cs是在SkiningModel的範例中所使用的,藉由這個類別你可以不用再花額外的時間寫關於Camera的程式碼。
    A和D是對Y軸旋轉,W和S是對X軸做旋轉,Z和X是負責控制遠近。
    使用方式:
    這邊只是提供一種方式來使用這個類別,你可以針對你自己的需求在做更改。
    1> 在Game.cs中,先引入這個類別的命名空間。 ->using DeferredShadingTutorial;
    2> 宣告一個Camera物件。 ->Camera camera;
    3> 在建構子當中建立(new)並把它增加到Component Stack裡面。
        ->camera = new Camera(this);
        ->Component.Add(camera);
        由於本類別是GameComponent類別,所以當你把它加入Component stack的時候,XNA在每次呼叫base.Draw或是base.Update時,會幫你自動更新。
        因此,當你按下鍵盤的ASDW按鍵時候,XNA會自動幫你更新Camera狀態。
    4> 現在,Draw函數中,當你要畫模型需要使用到Camera的view、projection變數時,只要藉由camera.View和camera.Projection就可以取得相關的矩陣。

2. QuadRenderer.cs
    此類別主要是用來畫出平板。可以方便的使用在Deferred Shading和texture space相關的操作。
    畫出的平板會給定座標和貼圖座標。

這邊分享這兩個好用的程式碼,會在接下來的範例中跟各位慢慢介紹。

在右邊的"資源",有個叫做component.rar裡面包含這兩個檔案

創作者介紹
創作者 teexit1224 的頭像
teexit1224

StreamWhite

teexit1224 發表在 痞客邦 留言(0) 人氣()