Compo 2h i Screen Tygodnia
Hej!
Na początek mała dygresja – tą i poprzednią notką postanowiłem przełamać trochę konwencję tego bloga. Od dzisiaj nie będę pisał tu o tym, co działo się miesiąc temu jednocześnie oszukując was że nie miałem czasu pisać (no dobra, zazwyczaj nie oszukuję, po prostu nicnierobienie pożera cały mój czas i faktycznie go nie mam). :) Dlatego też możecie spodziewać się notek o tym, o czym tylko da się napisać. ;)
Oto więc mniej-więcej w połowie lutego meehav zorganizował Compo 2h. Szlachetna ta inicjatywa tym razem nie spaliła na panewce i udział wzięło 11 (!) osób. Mi przyszło zająć zaszczytne trzecie miejsce, wespół z naisho. Aby to osiągnąć wystarczyło D3DXCreateTeapot i trochę klepania kodu, którego nigdy w życiu nikomu bym nie pokazał – z tej mieszanki wyszedł taki oto arkanoid:
Gra moja jest o tyle dopracowana i grywalna, że da się w nią przegrać – co nie jest wcale takie oczywiste. :)
Drugim niusem jakim chcę się podzielić jest to, że zaimplementowałem futro. Nie byłoby w tym nic ciekawego, gdyby nie to, że postanowiłem z tegoż futra wrzucić screen na Warsztat – w ciągu paru godzin uzyskał on 2k punktów stając się Screenem Tygodnia. Jako że screen jest w gruncie rzeczy brzydki, to czuję się zobligowany zaznaczyć, że nie mam z tym nic wspólnego ;P
Futro natomiast zaimplementowałem metodą Shells and Fins – polega ona na “wyciąganiu” geometrii wzdłuż normalnej, a następnie teksturowaniu jej odpowiednio spreparowaną teksturą wolumetryczną – to shells (nieudolne tłumaczenie – skorupki). Często dodaje się również tzw. fins, czyli żeberka. Są to “poprzeczne” trójkąty wystające z siatki, z nałożoną teksturą sierści. Mają one za zadanie maskować artefakty powstałe przez extrusion geometrii.
Na koniec tej notki, dla porównania z efektem końcowym, pierwsza próba z futrem.
// Disclaimer: screen ma charakter humorystyczny. Jego biedność nie może być podstawą do naśmiewania się z autora. :P

I pomyśleć, że jesteś młodszy ode mnie o trzy lata :P Świetna robota z tym futrem, naprawdę ładnie to wygląda. Gra również niczego sobie – pograłem z przyjemnością.
Mam natomiast ciekawskie pytanko – jaką techniką oświetlasz podłoże pod futrzanymi samochodem? To jakiś bump, parallax czy po prostu taka boska tekstura? :P
Pozdrawiam
Dot3 normalmapping + oświetlenie phong. :)
Fajnie to wygląda! Dałbyś linki z których się tego uczyłeś.
Sam algorytm jest w gruncie rzeczy bardzo prosty. Opisany jest na przykład tutaj: http://developer.download.nvidia.com/SDK/10.5/direct3d/Source/Fur/doc/FurShellsAndFins.pdf . Z tego arta się uczyłem. :)
Problem sprawiło mi natomiast znalezienie odpowiedniej tekstury wolumetrycznej z danymi futra (w ultimate rozwiązaniu trzebaby napisać jakiegoś toola do jej generowania). Na szczęście Zombiak@#warsztat zwrócił uwagę, że w starym DX SDK jest taka tekstura. :)
Ja w swojej implementacji taką teksturę generuję proceduralnie (zaczynasz od skóry i w miarę “oddalania się od niej” ujmujesz trochę włosów poprzez zmniejszenie alphy w poszczególnych punktach – ostatnia warstwa jest niemal pusta) :) Co prawda użyty przeze mnie model zająca ma rozjechane koordynaty tekstur, ale grunt że działa :) A ogólnie to bardzo fajnie wyszło :)
Ja osobiście znalazłem takie coś – http://www.cs.utah.edu/~thiago/fur/fur.html. Jest dołączony kod źródłowy i chociaż samego opisu jest niewiele, to myślę, że to też dobry materiał do studiowania.