Enregistrement des états de vertex avec un StateBlock (Direct3D 9)

Un bloc d’état peut être utilisé pour capturer uniquement l’état de vertex (consultez État d’enregistrement et de restauration des blocs d’état (Direct3D 9)). L’état suivant est l’état de vertex :

Pour capturer l’état de vertex avec un bloc d’état, spécifiez D3DSBT_VERTEXSTATE lors de l’appel de IDirect3DDevice9::CreateStateBlock.

Pipeline de vertex : état de rendu

Les états de rendu de l’appareil affectent le comportement de presque chaque partie du pipeline. Les états de rendu sont définis en appelant IDirect3DDevice9::SetRenderState.

Le tableau suivant inclut tous les états de rendu qui configurent l’état de vertex :

États de rendu Valeur par défaut
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 Dépendant du pilote
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 de vertex : état de l’échantillonneur

Les états de l’échantillonneur contrôlent les rubriques liées à l’échantillonnage, telles que le filtrage, le mosaïde et les modes d’adresse de coordonnées de texture. Utilisez IDirect3DDevice9::SetSamplerState pour configurer l’état de l’échantillonneur (y compris celui utilisé dans l’unité tessellator pour échantillonner les mappages de déplacement). Les états de l’échantillonneur ont été renommés avec un préfixe « D3DSAMP_ » pour activer la détection des erreurs de compilation lors du portage à partir de DirectX 8.

Le tableau suivant inclut tous les états de l’échantillonneur qui configurent l’état du vertex :

États de l’échantillonneur Valeur par défaut
D3DSAMP_DMAPOFFSET 256

 

Pipeline de vertex : état de texture

Les états de texture contrôlent les opérations de fusion de textures du mélangeur multi texture. Utilisez IDirect3DDevice9::SetTextureStageState pour configurer les états de texture. Utilisez IDirect3DDevice9::SetTexture pour associer une texture à une étape d’échantillonneur.

Le tableau suivant inclut tous les états de texture qui configurent l’état du vertex :

États de texture Valeur par défaut
D3DTSS_TEXCOORDINDEX 0
D3DTSS_TEXTURETRANSFORMFLAGS D3DTTFF_DISABLE

 

D3DTSS_TEXCOORDINDEX est un état de traitement de vertex de fonction fixe. Si un nuanceur de vertex programmable est utilisé, cet état est ignoré.

Enregistrer et restaurer l’état des blocs d’état