Salvataggio degli stati dei vertici con stateBlock (Direct3D 9)

È possibile usare un blocco di stato per acquisire solo lo stato dei vertici (vedere State Blocks Save and Restore State (Direct3D 9)). Lo stato seguente è il vertice:

Per acquisire lo stato dei vertici con un blocco di stato, specificare D3DSBT_VERTEXSTATE quando si chiama IDirect3DDevice9::CreateStateBlock.

Pipeline vertice: stato di rendering

Gli stati di rendering del dispositivo influiscono sul comportamento di quasi tutte le parti della pipeline. Gli stati di rendering vengono impostati chiamando IDirect3DDevice9::SetRenderState.

La tabella seguente include tutti gli stati di rendering che configurano lo stato dei vertici:

Stati di rendering Valore predefinito
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 Driver dipendente
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

 

Pipeline vertice: stato del campionatore

Gli stati del campionatore controllano argomenti correlati al campionamento, ad esempio filtri, tiling e modalità di indirizzo delle coordinate della trama. Usare IDirect3DDevice9::SetSamplerState per configurare lo stato del campionatore (incluso quello usato nell'unità a mosaico per campionare le mappe di spostamento). Gli stati del campionatore sono stati rinominati con un prefisso "D3DSAMP_" per abilitare il rilevamento degli errori in fase di compilazione durante la conversione da DirectX 8.

La tabella seguente include tutti gli stati del campionatore che configurano lo stato del vertice:

Stati del campionatore Valore predefinito
D3DSAMP_DMAPOFFSET 256

 

Pipeline vertice: stato trama

Gli stati delle trame controllano le operazioni di fusione delle trame del frullatore a più trame. Usare IDirect3DDevice9::SetTextureStageState per configurare gli stati della trama. Usare IDirect3DDevice9::SetTexture per associare una trama a una fase del campionatore.

La tabella seguente include tutti gli stati della trama che configurano lo stato del vertice:

Stati trama Valore predefinito
D3DTSS_TEXCOORDINDEX 0
D3DTSS_TEXTURETRANSFORMFLAGS D3DTTFF_DISABLE

 

D3DTSS_TEXCOORDINDEX è uno stato di elaborazione dei vertici di una funzione fissa. Se viene utilizzato un vertex shader programmabile, questo stato viene ignorato.

State Blocks Save and Restore State