Partager via


Formules de brouillard (Direct3D 9)

Les applications C++ peuvent contrôler la façon dont le brouillard affecte la couleur des objets dans 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 tant que fonction de la distance, en fonction des paramètres que votre application définit.

Brouillard linéaire

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

équation du brouillard linéaire direct3d

where

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

Brouillard exponentiel

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

Ceci est défini avec l’équation D3DFOG_EXP suivante.

équation de brouillard exponentiel direct3d

where

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

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

équation de brouillard exponentiel direct3d 2

where

  • e est la base des logarithmes naturels comme indiqué ci-dessus.
  • la densité est une densité de brouillard arbitraire qui peut varier 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.

Notes

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 propre éclairage, vous pouvez insérer manuellement des valeurs de facteur de brouillard, à appliquer par le système pendant le rendu.

 

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

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

D3DFOG_LINEAR est 1.0 au début et 0.0 à la fin. Il n’est pas mesuré 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 direct3d

Cette formule met effectivement à l’échelle la couleur du polygone actuel C par le facteur de brouillard f, et ajoute le produit à la couleur de brouillard C, mise à l’échelle par l’inverse au niveau du bit du facteur de brouillard. La valeur de couleur résultante est un mélange de la couleur de brouillard et de la couleur d’origine, en tant que facteur de distance. La formule s’applique à tous les appareils pris en charge dans Microsoft DirectX 7.0 et versions ultérieures. Pour le dispositif de rampe hérité, le facteur de brouillard met à l’échelle les composants de couleur diffuse et spéculaire, fixés à 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 plan lointain.

Types de brouillard