XNA 4.0提供狀態物件,狀態物件將原本以往零零散散的屬性設定變成一個單一個物件。
像原本3.0的時候,我們要將要將3D模型用網格畫出來,我需要設定特定的屬性。
設定Cull模式,也是要設應特定的屬性。
每次要找那些屬性都是一個頭兩個大,而在這次新的改版中,XNA 4.0提供
BlendState, DepthStencilState, RasterizerState, 和SamplerState,讓程式設計師使用。
比較常用的是
RasterizerState: 設定Cull模式(順時鐘或是逆時鐘),設定填滿模式(填滿或是網格)。
SamplerState: 設定貼圖取樣方式。在使用者自訂的shader code當中,我們可以在shader設定
貼圖取向的方式,如:
texture diffusemap;
sampler mdiffusemap;Sampler = sampler_state
{
    texture = <diffusemap>;
    magfilter = LINEAR;
    minfilter = LINEAR;
    mipfilter = LINEAR;
    AddressU = CLAMP;
    AddressV = CLAMP;
};
上述程式碼是使用shader的方式控制貼圖取樣。
而現在XNA 4.0讓你也可以在程式碼當中指定類似這樣的事情。
EX:
SamplerStateCollection temp = GraphicsDevice.SamplerStates;
temp[0].Filter = TextureFilter.Linear;
用這種方式來設定第0張貼圖的資訊。

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

StreamWhite

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