Trochę pracy, trochę rozrywki i duży fail.

Hej!

Witam was wszystkich po kolejnej długiej przerwie. Licznik odwiedzin per dzień nieubłaganie idzie w dół, więc oto mam dla was, drodzy czytelnicy kolejną porcję nudnych jak flaki z olejem przemyśleń.

Tak oto pojechałem, wraz ze szkolną wymianą, do kraju tulipanów, wiatraków i używek – Holandii. Dane na szczęście mi było podziwiać jedynie tulipany i wiatraki, przy czym to pierwsze głównie na obrazkach (pory kwitnienia itd.). Ale głównym powodem, dla którego kogokolwiek mogłyby te bzdety interesować jest WMag. Wyjeżdżając, zostawiłem opiekę nad zinem innym. Niestety, przez parę zawirowań oraz zbiegów okolicznośći, które wyjaśniam dokładnie w tym[1][2] wątku forum, magazyn przechodzi przez trudny okres.  Dość powiedzieć, że marcowy WMag nie ukazał się, a przyszłość pisemka nadal jest dla mnie mglista, z powodu braku etatowego składacza.

Poza tym, zająłem się trochę silnikiem. Przede wszystkim, przepisałem cały renderer na Deferred Shading. Dałem się skusić, głównie prezentacją NecroVisioN na tegorocznym IGK. Jak dotąd jestem z rozwiązania zadowolony (chociaż jeszcze nie walczyłem z jednym z większych problemów – Antialiasingiem ;P ). Trochę sztucznie ograniczam target do Shader Model 3 (MRT, oraz ogólna zasobożerność technologii), jednak wydaje mi się to do przeżycia, skoro i tak jak dotąd piszę ten silnik dla siebie.  Przy okazji udowodniłem sobie, że architektura mojego tworu jest całkiem dobrze przemyślana – zmiana renderera wymagała jedynie kosmetycznych zmian w API (głównie w części jego odpowiedzialnej za postprocessing – znacznie się to uprościło).

Kiedy już miałem dosyć kodu renderera (a było parę takich chwil :P ), zajmowałem się edytorem. Nie jest to szczyt techniki, ale jest to mój pierwszy tool tego typu. Jest on napisany w, modny ostatnio sposób, jako klient do serwera – gry (a więc gra po prostu renderuje w oknie edytora, całą logikę zostawiając po stronie własnego kodu) Wykorzystuję komunikację opartą o Named Pipes. Rozwiązanie to podoba mi się, chociaż nie jest pozbawione wad. Zaletą jest to, że nie duplikuje się żaden kod między edytorem a grą.

Jak dotąd, napisane mam jedynie prosty edytor konfiguracji (widoczny z prawej), oraz równie prosty edytor shaderów (jak dotąd jest to edytor raw plików .fx. Docelowo nie będzie to tak wyglądać. :P). Oczywiście, jeśli potrzebujemy, każdą zakładkę możemy zamknąć lub schować, dzięki użyciu DockPanel Suite. Jednakowoż, mimo że całość jest nieskomplikowana, narzędzie znacznie ułatwia debugowanie – możliwość dostrajania parametrów aplikacji oraz edytowanie shaderów w realtime w trakcie działania programu znacznie przyśpiesza cały proces.

Na koniec, mały screen z owego edytora. Grafika to stworzona w Milkshape 3D sfera, oteksturowana przykładowymi kamyczkami z DX SDK, oświetlona jednym światłem punktowym Blinna.

image

Reklamy

~ - autor: charibo w dniu Kwiecień 11, 2009.

Komentarzy 5 to “Trochę pracy, trochę rozrywki i duży fail.”

  1. Deferred shading rządzi :) i nic nie zmieni mojej opinii w tej kwestii ;) Z wmagiem faktycznie daliście plamę.

  2. A ja wiem, czy dali plamę. Po robocie, jaką odwalili, należał się im miesiąc odpoczynku. :]

  3. Mam pytanie. DockPanel Suite jest napisany na platformie .net (czyli managed code) i po ikonce poznaję że edytor napisałeś jako Windows Forms application. Czy silnik renderujący też jest napisany w Managed c++ (może C#) czy w zwykłym natywnym c++? Jeśli w natywnym to jak połączyłeś ten silnik z edytorem?

  4. Nie, silnik napisany jest w natywnym C++/Direct3D. Renderer i edytor komunikują się ze sobą używając Named Pipes, przy inicjalizacji połączenie urządzenie Direct3D tworzone jest tak, żeby renderować w oknie edytora :)

  5. ok, dzięki za info :)

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Wyloguj / Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Wyloguj / Zmień )

Zdjęcie na Facebooku

Komentujesz korzystając z konta Facebook. Wyloguj / Zmień )

Zdjęcie na Google+

Komentujesz korzystając z konta Google+. Wyloguj / Zmień )

Connecting to %s

 
%d blogerów lubi to: