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 comme fonction de distance, en fonction des paramètres définis par votre application.

Brouillard linéaire

Cette valeur est définie avec l' _ équation linéaire D3DFOG suivante.

équation du brouillard linéaire Direct3D

where

  • Start est la distance à laquelle les effets de brouillard commencent.
  • end est la distance à laquelle les effets de brouillard n’augmentent plus.
  • d représente la profondeur ou la distance à partir 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 un brouillard non basé sur une plage, la valeur pour 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 pixel et le brouillard de vertex.

Cela est défini avec l’équation D3DFOG _ exp suivante.

équation du brouillard exponentiel Direct3D

where

  • e est la base des logarithmes naturels (environ 2,71828).
  • la densité est une densité de brouillard arbitraire qui peut être comprise entre 0,0 et 1,0.
  • d représente la profondeur, ou la distance par rapport au point de vue, comme indiqué plus haut.

Cette valeur est définie avec l' _ équation D3DFOG EXP2 suivante.

équation du brouillard exponentielle 2 Direct3D

where

  • e est la base des logarithmes naturels comme indiqué ci-dessus.
  • la densité est une densité de brouillard arbitraire qui peut être comprise entre 0,0 et 1,0, comme indiqué ci-dessus.
  • d représente la profondeur, ou la distance par rapport au 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 vertex. Si votre application effectue sa propre transformation et éclairage, vous pouvez insérer des valeurs de facteur de brouillard manuellement, qui seront appliquées par le système lors du rendu.

Le graphique suivant présente 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 couleur

D3DFOG _ Linear est 1,0 au début et 0,0 à la fin. Il n’est pas mesuré par rapport aux plans near ou Far.

Lorsque Direct3D calcule des effets de 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 par le facteur de brouillard f, puis ajoute le produit à la couleur de brouillard C, mise à l’échelle par l’inverse de l’opération de bits 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 l’appareil rampe héritée, le facteur de brouillard met à l’échelle les composants de couleur diffuse et spéculaire, fixés à la plage 0,0 et 1,0, inclus. Le facteur de brouillard commence généralement à 1,0 pour le plan proche et diminue à 0,0 du plan lointain.

Types de brouillard