Salvataggio degli stati dei vertici con stateBlock (Direct3D 9)
È possibile usare un blocco di stato per acquisire solo lo stato dei vertici (vedere blocchi di stato Salva e ripristina stato (Direct3D 9)). Lo stato seguente è lo stato del vertice:
- Stato di rendering dei vertici (vedere Pipeline dei Vertici: Stato di Rendering).
- Stato del campionatore dei vertici (vedere Vertex Pipeline: stato del campionatore).
- Stato della texture dei vertici (vedere Pipeline dei vertici: Stato della texture).
- Segmenti della modalità NPatch di IDirect3DDevice9::SetNPatchMode.
- Ogni illuminazione configurata da IDirect3DDevice9::SetLight, oltre a se la luce è attivata con IDirect3DDevice9::LightEnable.
- Il vertex shader attuale e ciascuna delle costanti del vertex shader.
- Per ogni flusso di vertici, memorizza il valore del divisore da IDirect3DDevice9::SetStreamSourceFreq.
- Dichiarazione di vertice corrente.
Per acquisire lo stato dei vertici con un blocco di stato, specificare D3DSBT_VERTEXSTATE quando si chiama IDirect3DDevice9::CreateStateBlock.
Pipeline dei vertici: 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 del vertice:
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 | VERO |
D3DRS_LIGHTING | VERO |
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 del vertice: stato del campionatore
Gli stati del campionatore controllano gli 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 utilizzato nell'unità di tessellazione 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 dei vertici: 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 delle trame. Usare IDirect3DDevice9::SetTexture per associare una texture a una fase di campionamento.
La tabella seguente include tutti gli stati della trama che configurano lo stato del vertice:
Stati delle texture | Valore predefinito |
---|---|
D3DTSS_TEXCOORDINDEX | 0 |
D3DTSS_TEXTURETRANSFORMFLAGS | D3DTTFF_DISABLE |
D3DTSS_TEXCOORDINDEX è uno stato di elaborazione dei vertici a funzione fissa. Se viene utilizzato un vertex shader programmabile, questo stato viene ignorato.
Argomenti correlati