共用方式為


使用 StateBlock 儲存頂點狀態 (Direct3D 9)

狀態欄塊只能用來擷取頂點狀態, (請參閱 狀態欄塊儲存和還原狀態 (Direct3D 9) ) 。 下列狀態為頂點狀態:

若要使用狀態欄塊擷取頂點狀態,請在呼叫 IDirect3DDevice9::CreateStateBlock時指定D3DSBT_VERTEXSTATE。

頂點管線:轉譯狀態

裝置轉譯狀態會影響管線中幾乎所有部分的行為。 轉譯狀態是藉由呼叫 IDirect3DDevice9::SetRenderState來設定。

下表包含設定頂點狀態的所有轉譯狀態:

轉譯狀態 預設值
D3DRS_CULLMODE D3DCULL_CCW
D3DRS_FOGCOLOR 0
D3DRS_FOGTABLEMODE D3DFOG_NONE
D3DRS_FOGSTART 0
D3DRS_FOGEND 1
D3DRS_FOGDENSITY 1
D3DRS_RANGEFOGENABLE FALSE
D3DRS_AMBIENT 0
D3DRS_COLORVERTEX TRUE
D3DRS_FOGVERTEXMODE D3DFOG_NONE
D3DRS_CLIPPING TRUE
D3DRS_LIGHTING TRUE
D3DRS_LOCALVIEWER TRUE
D3DRS_EMISSIVEMATERIALSOURCE D3DMCS_MATERIAL
D3DRS_AMBIENTMATERIALSOURCE D3DMCS_MATERIAL
D3DRS_DIFFUSEMATERIALSOURCE D3DMCS_COLOR1
D3DRS_SPECULARMATERIALSOURCE D3DMCS_COLOR2
D3DRS_VERTEXBLEND D3DVBF_DISABLE
D3DRS_CLIPPLANEENABLE 0
D3DRS_POINTSIZE 驅動程式相依
D3DRS_POINTSIZE_MIN 1
D3DRS_POINTSPRITEENABLE FALSE
D3DRS_POINTSCALEENABLE FALSE
D3DRS_POINTSCALE_A 1
D3DRS_POINTSCALE_B 0
D3DRS_POINTSCALE_C 0
D3DRS_MULTISAMPLEANTIALIAS TRUE
D3DRS_MULTISAMPLEMASK 0xffffffff
D3DRS_PATCHEDGESTYLE D3DPATCHEDGE_DISCRETE
D3DRS_POINTSIZE_MAX 1
D3DRS_INDEXEDVERTEXBLENDENABLE FALSE
D3DRS_TWEENFACTOR 0
D3DRS_POSITIONDEGREE D3DDEGREE_CUBIC
D3DRS_NORMALDEGREE D3DDEGREE_LINEAR
D3DRS_MINTESSELLATIONLEVEL 1
D3DRS_MAXTESSELLATIONLEVEL 1
D3DRS_ADAPTIVETESS_X 0
D3DRS_ADAPTIVETESS_Y 0
D3DRS_ADAPTIVETESS_Z 1
D3DRS_ADAPTIVETESS_W 0
D3DRS_ENABLEADAPTIVETESSELLATION「/> FALSE

 

頂點管線:取樣器狀態

取樣器狀態可控制取樣相關主題,例如篩選、並排和紋理座標位址模式。 使用 IDirect3DDevice9::SetSamplerState 來設定取樣器狀態 (包括鑲嵌器單位中使用的取樣位移對應) 。 取樣器狀態已重新命名為 「D3DSAMP_」 前置詞,以在從 DirectX 8 移植時啟用編譯時間錯誤偵測。

下表包含設定頂點狀態的所有取樣器狀態:

取樣器狀態 預設值
D3DSAMP_DMAPOFFSET 256

 

頂點管線:紋理狀態

紋理狀態控制多紋理混合器的紋理混合作業。 使用 IDirect3DDevice9::SetTextureStageState 來設定紋理狀態。 使用 IDirect3DDevice9::SetTexture 將紋理與取樣器階段產生關聯。

下表包含設定頂點狀態的所有紋理狀態:

紋理狀態 預設值
D3DTSS_TEXCOORDINDEX 0
D3DTSS_TEXTURETRANSFORMFLAGS D3DTTFF_DISABLE

 

D3DTSS_TEXCOORDINDEX是固定函式頂點處理狀態。 如果使用可程式化的頂點著色器,則會忽略此狀態。

狀態欄塊儲存和還原狀態