Partager via


Formules de brouillard (Direct3D 9)

Les applications C++ peuvent contrôler comment le brouillard affecte la couleur des objets d’une scène en modifiant la façon dont Microsoft Direct3D calcule les effets de brouillard sur la distance. Le type énuméré D3DFOGMODE contient des membres qui identifient les trois formules de brouillard. Toutes les formules calculent un facteur de brouillard en fonction de la distance, en fonction des paramètres que votre application définit.

Brouillard linéaire

Cela est défini avec l’équation D3DFOG_LINEAR suivante.

équation de brouillard linéaire direct3d

  • le début est la distance à laquelle les effets du brouillard commencent.
  • la fin est la distance à laquelle les effets du brouillard n’augmentent plus.
  • d représente la profondeur, ou la distance du point de vue. Pour le brouillard basé sur une plage, la valeur de d correspond à la distance entre la position de la caméra et un sommet. Pour le brouillard non basé sur une plage, la valeur de d est la valeur absolue de la coordonnée Z dans l’espace de la caméra.

Brouillard exponentiel

Les formules linéaires et exponentielles sont prises en charge pour le brouillard de pixels et le brouillard de vertex.

Il s’agit de l’équation D3DFOG_EXP suivante.

équation de brouillard exponentiel direct3d

  • e est la base des logarithmes naturels (environ 2,71828).
  • la densité est une densité de brouillard arbitraire qui peut aller de 0,0 à 1,0.
  • d représente la profondeur, ou la distance du point de vue, comme indiqué précédemment.

Cela est défini avec l’équation D3DFOG_EXP2 suivante.

équation de brouillard exponentiel direct3d 2

  • e est la base des logarithmes naturels comme indiqué ci-dessus.
  • la densité est une densité de brouillard arbitraire qui peut aller de 0,0 à 1,0, comme indiqué ci-dessus.
  • d représente la profondeur, ou la distance du point de vue, comme indiqué ci-dessus.

Note

Le système stocke le facteur de brouillard dans le composant alpha de la couleur spéculaire d’un sommet. Si votre application effectue sa propre transformation et son éclairage, vous pouvez insérer manuellement des valeurs de facteur de brouillard pour être appliquées par le système pendant le rendu.

 

Le graphique suivant montre ces formules, en utilisant des valeurs communes comme dans les paramètres de formule.

graphique des formules de brouillard sur la distance et la quantité de couleurs

D3DFOG_LINEAR est 1,0 au début et 0,0 à la fin. Elle n’est pas mesurée par rapport aux plans proches ou lointains.

Lorsque Direct3D calcule les effets du brouillard, il utilise le facteur de brouillard de l’une des équations précédentes dans l’équation de fusion suivante.

équation des effets de brouillard pour les direct3d

Cette formule met efficacement à l’échelle la couleur du polygone actuel C par le facteur de brouillard f, et ajoute le produit à la couleur de brouillard C, mis à l’échelle par l’inverse au niveau du bit du facteur de brouillard. La valeur de couleur résultante est un mélange de couleur de brouillard et de couleur d’origine, comme facteur de distance. La formule s’applique à tous les appareils pris en charge dans Microsoft DirectX 7.0 et versions ultérieures. Pour l’appareil de rampe hérité, le facteur de brouillard met à l’échelle les composants de couleur diffuse et spéculaire, limité à la plage de 0,0 et 1,0 inclus. Le facteur de brouillard commence généralement à 1,0 pour le plan proche et diminue à 0,0 au niveau du plan lointain.

types de brouillard