Na poczatku wykonaj kopię przygotowanego projektu w artykule „OpenGl – Szablon programu”, następnie nazwij ją np. Mgla. Otwórz projekt i przejdź do pliku render.pas. Dodaj do niego
poniższą procedurę, która będzie tworzyć mgłę :

Możemy ustawić jakość mgły za pomocą parametru GL_FOG_MODE. Może przyjmować wartości :
– GL_LINEAR – liniowa
– GL_EXP2 – eksponencjalna kwadratowa
– GL_EXP – eksponencjalna

Im lepsza jakość mgły tym wolniejsze działanie programu.

Oprócz użytych przez nas parametrów istnieje jeszcze jeden. Poleceniem glHint(GL_FOG_HINT, … ); ustawiamy dokładność perspektywy. Możemy przypisać następujące wartości:
– GL_FASTEST – szybka, niezbyt dokładna
– GL_NICEST – powolna, bardzo dokładna
– GL_DONT_CARE – średnia

Tłumaczenie reszty parametów znajduje się w kodzie procedury i nie wymaga dodatkowego opisu. Teraz musimy wywołać mgłę.
Przejdź do procedury RenderFrame i dopisz na jej początku :

To wystarczy do stworzenia mgły. My jednak, aby lepiej widoczne było jej istnienie zmienimy procedurę
RenderFrame, aby wyświetlała obiekt 3D składający się z trzech trójkątów. Oto jej kod :

Aby dopasować Timera do nowej procedury rysującej, otwórz plik timer.pas.
Usuń wszystkie zbędne funkcje, pozostaw tylko :

Po uruchomieniu programu zobaczy jak mgła będzie powoli zajmować coraz większą powierzchnię naszej sceny. Na tym kończymy ten artykuł.

Autor: Nakiel

Załączniki