Share via


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

La mise en mémoire tampon de profondeur est une méthode permettant de supprimer 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, en utilisant 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 la mémoire 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.

Le biais Z est une méthode permettant d’afficher une surface devant une autre, même si leurs valeurs de profondeur sont les mêmes. Vous pouvez utiliser cette technique pour une variété 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. L’attribution d’un décalage z à l’ombre permet à Direct3D de les afficher correctement (voir D3DRS_DEPTHBIAS).

États de rendu