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:
- Stato di rendering dei vertici (vedere Vertex Pipeline: Render State).
- Stato del campionatore di vertici (vedere Vertex Pipeline: Sampler State).
- Stato della trama dei vertici (vedere Vertex Pipeline: Texture State).
- Segmenti della modalità NPatch da IDirect3DDevice9::SetNPatchMode.
- Ogni luce di IDirect3DDevice9::SetLight, nonché se la luce è abilitata con IDirect3DDevice9::LightEnable.
- Vertex shader corrente e ognuna delle costanti del vertex shader.
- Per ogni flusso di vertici, archiviare il valore del divisore da IDirect3DDevice9::SetStreamSourceFreq.
- Dichiarazione del vertice corrente.
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.
Argomenti correlati