Mój pierwszy program w assemblerze x86. Algorytm zaczerpnięty z jednego z numerów legendarnego czasopisma C&A. Ze względu na kiepską procedurę losującą sam ogień jest raczej monotonny. Dużo ciekawiej prezentują się płonące litery.
Wariacje na temat oświatlania bitmapy przez flarę. Właściwie to próbowałem zrobić bumpa i efekty te uzyskałem niejako przy okazji, niemniej jednak wyglądają co najmniej interesująco.
Mój start w 3D. Zwykły druciak, nawet bez zasłaniania powierzchni niewidocznych. Za to cała matematyka zaimplementowana na koprocesorze.
Cieniowanie FLAT (każda ściana (face) wypełniana jest tylko jednym kolorem). Kolor ustalany na podstawie głębokości. Sortowanie RADIX po współrzędnej Z i zasłanianie płaszczyzn niewidocznych.
Cieniowanie GOURAUD'a (kolory wierzchołków są interpolowane liniowo na powierzchni każdego face'a). Kolor ustalany na podstawie głębokości. Algorytm sortowania zmieniony na QSORT (na koprocesorze). Dodałem licznik klatek.
Teksturowanie (powierzchnia każdego face'a pokrywana jest wzorem z bitmapy). Tekstura jest nakładana jednakowo na wszystkie face'y obiektu (ten sam fragment tekstury na każdym trójkącie).
Mapowanie środowiskowe (tekstura owija obiekt, współrzędne tekstury dla face'a wyliczane są w locie). Przy obracanych wersorach obiekt rozciąga rzutowaną frontalnie teksturę (daje to interesujący efekt metalicznych odblasków).
Tymczasowo mój najbardziej zaawansowany efekt 3D. Cieniowanie GOURAUD'a, kolor na podstawie wektora światła (którym można poruszać), paleta PHONG'a (nieliniowy rozkład barw od ciemnej do jasnej). Sortowanie tylko widocznych face'ów.
Znalazłem trochę czasu i tak oto powstał, bazujący na efekcie z flarą, bump mapping z prawdziwego zdarzenia. Nie jest to typowy bump ze względu na obcinanie do flary, ale może dlatego właśnie warto rzucić okiem.