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張貼圖的資訊。
- Sep 11 Sat 2010 23:55
[XNA 4.0學習筆記] 內建狀態物件
close
全站熱搜
留言列表
發表留言