État de la mise en mémoire tampon de profondeur (Direct3D 9)

La mise en mémoire tampon de profondeur est une méthode de suppression des lignes et des surfaces masquées. Par défaut, Direct3D n’utilise pas la mise en mémoire tampon de profondeur.

Pour obtenir une vue d’ensemble conceptuelle des mémoires tampons de profondeur, consultez mémoires tampons de profondeur (Direct3D 9).

Les applications C++ mettent à jour l’état de mise en mémoire tampon de profondeur avec l' _ État de rendu D3DRS ZENABLE, à l’aide d’un membre de l’énumération D3DZBUFFERTYPE pour spécifier la nouvelle valeur d’État.

Si votre application doit empêcher Direct3D d’écrire dans le tampon de profondeur, elle peut utiliser la _ valeur énumérée D3DRS ZWRITEENABLE, en spécifiant D3DZB _ false comme deuxième paramètre pour l’appel à IDirect3DDevice9 :: SetRenderState.

L’exemple de code suivant montre comment l’état de la mémoire tampon de profondeur est défini pour activer la mise en mémoire tampon z.

// This code example assumes that d3dDevice is a 
// valid pointer to an IDirect3DDevice9 interface.
// Enable z-buffering.
d3dDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);

Votre application peut également utiliser l' _ État de rendu D3DRS ZFUNC pour contrôler la fonction de comparaison utilisée par Direct3D lors de l’exécution de la mise en mémoire tampon de profondeur.

L’inclinaison Z est une méthode qui consiste à afficher une surface devant l’autre, même si leurs valeurs de profondeur sont identiques. Vous pouvez utiliser cette technique pour un grand nombre d’effets. Un exemple courant est le rendu des ombres sur les murs. L’ombre et le mur ont la même valeur de profondeur. Toutefois, vous souhaitez que votre application affiche l’ombre sur le mur. En donnant une polarisation z à l’ombre, Direct3D les affiche correctement (consultez D3DRS _ DEPTHBIAS).

États de rendu