Posts

Showing posts from 2010

L.B.A. remake

Image
Ostatnie tygodnie były dla mnie dość ciężkie większość czasu poświęcałem : życiu prywatnemu, pracy i uczelni. Dlatego dość mało udało mi się zrobić w projektach ale zmiany są, jak zawsze :] Obecnie realizuję projekt na uczelnię oraz pracę magisterską w oparciu o swój silnik. Jako, że fajnie jest mieć środowisko do testowania algorytmów w warunkach jak najbardziej zbliżonych do tych rzeczywistych postanowiłem stworzyć grę. Posiadając ograniczony czas zdecydowałem się na stworzenie remake'a starej gry. Dzięki temu mogę skupić się głównie na pisaniu i tworzeniu rzeczy bezpośrednio potrzebnych do tej produkcji nie martwiąc się wymyślaniem fabuły i mechaniki. Dodatkowym plusem takiego rozwiązania jest posiadanie konkretnego celu i założeń które w trakcie prac nie mogą się zbytnio zmienić gdyż chce aby gra była podobna do pierwowzoru.  Pierwsze efekty można zauważyć już poniżej : Na koniec dodam tylko : Wesołych Świąt Bożego Narodzenia  w końcu już dziś wigilia :]

Projekt rozpoczęty

Image
No więc rozpocząłem pierwszy konkretniejszy projekt na swoim silniku, oto efekt co da się już szybko osiągnąć  dzięki edytorowi: w trakcie pracy nad tą wstępną wersją mapki wyszło parę rzeczy które można jeszcze poprawić a parę musiałem poprawić aby praca szybciej szla :] No ale jak widać nawet się udało coś porządnego uzyskać :]  Dodatkowo dzisiaj przeprowadziłem pewne optymalizacje w wyświetlaniu grafiki a gDEBuger bardzo mi w tym pomógł :] dodatkowo uświadomił parę moich złych nawyków. Mianowicie przyzwyczajenie do standardowego pipelinu OpenGL. Widać ciągle przede mną długa :] no ale gdyby jej nie było to bym się pewnie nudził :]

I kolejny post.

Image
Ostatnio coś sporo się tych moich postów pojawia :] no więc nie mnie oceniać czy to powód do radości czy do płaczu :P No ale kontynuujmy to co zacząłem. Ostatnimi czasy udało się zrobić parę ciekawych rzeczy: Jedną z nich były obiekty i tak do tej pory w silniku dało dodawać się tylko modele i teren co nie dawało za dużych możliwości konfiguracji dodawanych danych. Ale niedawno się to zmieniło:] powstały małe skrypty wyglądające np. tak : //// plik: FloorA.wro def 0 : models/FloorA.wrm {     material = Floor000 } //// plik: FloorB.wro def 0 : models/FloorA.wrm {     material = Floor001 } Niby nic nadzwyczajnego ale z powodu tego właśnie bajeru musiałem przebudować system modeli. Problemem był fakt, że w poprzedniej implementacji zakładałem, że każdy model ma materiał. Jak widać powyżej problem jest bo mam 1 model a chcę aby 2 obiekty nadawały mu dwa różne materiały. Stary system prezentował się tak : A nowy tak : Jak widać pojawiła się w nim nowa warstwa CMeshInstance która zas

Nowości ciąg dalszy

Image
W projekcie pojawiły się kolejne nowości. Większość można zauważyć na poniższym screenie z edytora. Zaczął działać system wyświetlania właściwości zaznaczonego obiektu. Póki co jest to tylko podgląd ale już niedługo będzie można przy pomocy niego edytować właściwości. Kolejna spora zmiana to pojawienie się terenu, póki co generowany jest on z bitmap i przez jakiś czas w takim stanie pozostanie. Kolejna ciekawostka to, że w końcu istnieje coś takiego jak zaznaczanie wielu obiektów. Ułatwia to bardzo tworzenie sceny. Wystarczy zaznaczyć obiekty i albo przekształcić obiekty albo przy transformacji przytrzymać SHIFT aby uzyskać ich kopie.

Gra

Image
W pracach nad silnikiem i edytorem nie zapominam, że wszystko to robię w celu stworzenia gry. Dlatego dzisiaj ukończyłem pierwszy etap prac nad grą. Jak widać poniżej udało mi się załadować scenę stworzoną w edytorze bezpośrednio do gry. Ze strony kodu wymagało to jak zawsze trochę pracy ale jak to bywa w programowaniu lepiej wykonać takie rzeczy nie czekając za długo gdyż czym dłużej się zwleka tym więcej rzeczy do przerobienia. Aktualny system gry wygląda w uproszczeniu tak : Poszczególne kolory oznaczają warstwy aplikacji. Jak widać gra i edytor współdzielą systemy silnika gry, dzięki temu raz napisany kod działa dla obu tych "tworów". Pojawia się jednak kwestia późniejszego wykorzystania silnika w innych produkcjach, z tego powodu właśnie powstała warstwa przejściowa pomiędzy silnikiem gry a plikiem wykonywalnym. W "Game DLL"  będą definiowane obiekty gry w niej znajdą się definicje obiektów przedmiotów, mechanika oraz inne obiekty tego typu. Później podcz

Ciąg dalszy prac

Image
Ostatnie parę dni poświęciłem głównie na rozważania nad algorytmem zarządzającym geometrią który planuję realizować w ramach pracy mgr. Udało mi się jednak znaleźć trochę czasu i tak oto poprawiłem system zarządzający obiektami. Doczekał on się podziału na foldery które znajdują się w katalogu roboczym. Przy tej okazji przekonałem się, że biblioteka Qt była słusznym wyborem jeśli chodzi o edytor:] Do pracy zaprzęgłem system wyrażeń regularnych który udostępnia. W ten sposób nie muszę dołączać dodatkowych bibliotek z których korzystał bym właściwie tylko w edytorze. Nowy system umożliwia dwa sposoby filtrowania. Pierwszy jest to struktura folderów natomiast drugim który odnosi się tylko do aktualnej listy jest wyszukiwanie (pole tekstowe na górze). Dzięki zastosowaniu takiego lokalnego przeszukiwania cały system powinien się sprawdzać nawet przy sporych zbiorach obiektów :]

WRE

Image
W ostatnich miesiącach rozpocząłem pracę wiec trochę mniej czasu pozostało na programowanie. Jednak udaje mi się go trochę wygospodarować. I tak poza kursem CUDA który realizuję na uniwerku. Moim głównym zajęciem jest tworzenie WRE jest to mój silnik wyposażony dodatkowo w edytor. Póki co nie ma za bardzo co pokazywać bo głównie poświęcam się rzeczą mało widocznym ale systematycznie w miarę dorzucam nowe rzeczy. Ostatnimi czasy zajmowałem się trochę systemem materiałów który doczekał się w końcu dziedziczenia :] pomaga to wielce w tworzeniu nowych materiałów. Zmienił się również system OCtree który w razie potrzeby potrafi się już rozszerzyć (w stosunku do wejściowego obszaru). No i dość dynamicznie rozwija się również edytor. Jak widać na screenie jestem już w stanie stworzyć prostą scenę jednak jeszcze dość długa droga zanim będzie można w nim łatwo i wygodnie tworzyć lokacje gry.

Wielki powrót (naprawdę wielki)

Image
Ostatnio trochę zaniedbywałem bloga. Ale postaram się wrzucać od teraz posty w miarę regularnie. Co z tego wyjdzie ? Czas pokaże :] jak zawsze. No ale przejdźmy do tego czym się ostatnimi czasami zajmowałem a trochę tego było. Na zajęcia z Realistycznej Grafiki Komputerowej prowadzonych przez dr Andrzeja Łukaszewskiego tworzyłem ray tracing oraz path tracing. Nie obyło się bez problemów ale ogólnie kurs był według mnie prowadzony był świetnie. Nie ograniczał się tylko do jakichś podstaw ale pokazywał dużo technik o których przed kursem nie miałem zielonego pojęcia. Niestety mogłem uczestniczyć najczęściej tylko na jedną część wykładu gdyż kolidował on z zajęciami na mojej uczelni. Ale i tak uważam mimo wszystko, że nauczyłem się na nim naprawdę wiele :] Poniżej zamieszczam parę renderków z mojego programu. Wprowadziłem też własny format plików dla shaderów: set path= './data/' def perPixel : vert ('perPixel.cg','matVP') { modelViewProj = MODELVIEWPROJ_MATRIX }

Efekty pełnoekranowe

Image
Dawno nic nie wrzucałem. Ale ostatnio trochę bawiłem się efektami pełno ekranowymi i oto co wyszło: SSAO Fov Blur Jakiś efekt który mi wyszedł :] Niestety efekty nie zachwycają ale czego można oczekiwać po zintegrowanej karcie graficznej intela na moim laptopie :]

Fotografia

Image
Przez ostatni czas nie tylko bawiłem się grafiką robioną na kompie. Ćwiczyłem również fotografię, efekty moich eksperymentów można zobaczyć poniżej: