Udostępnij za pośrednictwem


Formuły mgły (Direct3D 9)

Aplikacje języka C++ mogą kontrolować, jak mgła wpływa na kolor obiektów w scenie, zmieniając sposób, w jaki usługa Microsoft Direct3D oblicza efekty mgły na odległość. Typ D3DFOGMODE wyliczany zawiera elementy członkowskie identyfikujące trzy formuły mgły. Wszystkie formuły obliczają współczynnik mgły jako funkcję odległości, biorąc pod uwagę parametry ustawiane przez aplikację.

Mgła liniowa

Jest to ustawione z następującym równaniem D3DFOG_LINEAR.

równanie bezpośredniej mgły liniowej

gdzie

  • start to odległość, w której zaczynają się efekty mgły.
  • koniec to odległość, w której efekty mgły już nie rosną.
  • d reprezentuje głębokość lub odległość od punktu widzenia. W przypadku mgły opartej na zakresie wartość d jest odległością między położeniem aparatu a wierzchołkiem. W przypadku mgły niezwiązanej z zakresem wartość d jest wartością bezwzględną współrzędnych Z w przestrzeni kamery.

Mgła wykładnicza

Formuły liniowe i wykładnicze są obsługiwane zarówno dla mgły pikseli, jak i mgły wierzchołka.

Jest to ustawione z następującym równaniem D3DFOG_EXP.

równanie bezpośredniej mgły wykładniczej

gdzie

  • e to podstawa logarytmów naturalnych (około 2,71828).
  • gęstość to dowolna gęstość mgły, która może wahać się od 0,0 do 1,0.
  • d reprezentuje głębokość lub odległość od punktu widzenia, jak określono wcześniej.

Jest to ustawione z następującym równaniem D3DFOG_EXP2.

równanie bezpośrednie3-wykładnicze 2 mgły

gdzie

  • e jest podstawą logarytmów naturalnych, jak ustalono powyżej.
  • gęstość to dowolna gęstość mgły, która może wahać się od 0,0 do 1,0, jak ustalono powyżej.
  • d reprezentuje głębokość lub odległość od punktu widzenia, jak określono powyżej.

Nuta

System przechowuje współczynnik mgły w składniku alfa koloru widmowego dla wierzchołka. Jeśli aplikacja wykonuje własną transformację i oświetlenie, możesz ręcznie wstawić wartości współczynnika mgły, które mają być stosowane przez system podczas renderowania.

 

Poniższy wykres przedstawia te formuły przy użyciu wspólnych wartości, jak w parametrach formuły.

wykres formuł mgły na odległość i ilość koloru

D3DFOG_LINEAR jest 1.0 na początku i 0.0 na końcu. Nie jest mierzona w stosunku do blisko lub daleko samolotów.

Gdy funkcja Direct3D oblicza efekty mgły, używa współczynnika mgły z jednego z poprzednich równań w poniższym równaniu mieszanym.

równanie efektów mgły dla direct3d

Ta formuła skutecznie skaluje kolor bieżącego wielokąta C przez współczynnik mgły f, i dodaje produkt do koloru mgły C, skalowany przez odwrotność bitowego współczynnika mgły. Wynikowa wartość koloru jest mieszanką koloru mgły i oryginalnego koloru jako czynnika odległości. Formuła dotyczy wszystkich urządzeń obsługiwanych w programie Microsoft DirectX 7.0 lub nowszym. W przypadku starszego urządzenia rampy współczynnik mgły skaluje rozproszone i specularne składniki koloru, zaciśnięte do zakresu 0,0 i 1,0 włącznie. Współczynnik mgły zwykle zaczyna się od 1,0 dla bliskiego samolotu i spada do 0,0 na dalekim płaszczyźnie.

typy mgły