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.
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.
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.
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.
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.
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.
Tematy pokrewne