Hej!
Skoro założyłem sobie, iż będę pisał o największych nawet bzdurach, byleby pisać jakiekolwiek notki, oto jest – trzecia notka w Lutym. :P
Tak więc przez ostatnie parę dni pracowałem nad trawą. Pomyślałem sobie, że trawę chciałem napisać od dawna, a jednak wydawała mi się prosta i zawsze odkładałem te plany. Wczoraj jednak wziąłem się w garść – tak powstało coś takiego:
Dorzuciłem jeszcze parę drzewek ściągniętych (znaczy – ukradzionych) z jakieś strony internetowej, bo sama łąka pełna trawy wyglądała pusto. ;)
W każdym razie, sprawa okazała się nie tak banalna – ponieważ miałem problem projektowy. Na początku rysowałem trawę z włączonym Alpha Blendingiem i wyłączonym zapisem Z. Jednak wtedy trzeba sortować pojedyńcze kępki według odległości od kamery (od tył) – co też oznacza, że musimy rysować je osobnymi DIP-ami, albo pakować do dynamicznych VB/IB co klatkę. Oba rozwiązania średnio mi się podobały pod względem wydajnościowym. Jednak, jako że nie wpadłem na nic lepszego – pakuję wszystkie kępki do jednego bufora w preprocessie, a wyświetlam z wyłączonym blendingiem i włączonym ZWrite – używając jedynie Alpha Testu. Nie wygląda to gorzej, a lepszego pomysłu na rozwiązanie tego problemu nie mam. W arcie opisującym tworzenie trawy w GPU Gems w ogóle o tym zagadnieniu zaś nie piszą. :)
Na koniec notki, mała dygresja. Wzorując się na Gynvaelu zwracałem ostatnimi czasy na frazy pod jakimi wyszukiwarki podwały adres mojego bloga. Spośród wielu zwykłych, znajdują się dwie perełki – rysowanie urządzeń, oraz coś, co kompletnie mnie zaskoczyło: vertex shader za darmo. Oto pragnę uświadomić każdego, kto odwiedza mojego bloga a jeszcze o tym nie wie – jeśli kiedykolwiek płaciliście za możiwość pisania własnych vertex shaderów – zostaliście oszukani. :P

Najnowsze komentarze