poniedziałek, 5 lipca 2010

Brum brum, Scav się budzi

Pod tym dość enigmatycznym tytułem budzi się pierwsza z cyklu (mam nadzieję, że cyklu) wakacyjnych krótkich notek o tym, dlaczego chcę, a nie mogę. Czyli o silniku Scav.

Ponieważ obiecałem sobie, że do silnika wrócę jak skończę sesję (przynajmniej tę główną), zatem teraz nieubłaganie zacząłem bawić się kodem. Na czym skupiłem się przez pierwsze parę dni?

  • Klasa dla FBO (czyli “to musi być ciekawa rzecz, skoro wszyscy jej używają”)
  • Klasa shaderów, w tym dla tych napisanych w języku Cg (czyli “o, mam to z frameworka”) oraz GLSL (czyli “z zajęć coś się przepisze i… A dlaczego plik się nie wczytuje?”)
  • Deferred (czyli “nie wychodzi mi i nie robię tego”)

Rzeczywiście, o ile FBO i shadery już są zaimplementowane i chyba działają (podkreślam słówko “chyba”), natomiast Deferred jakoś nie chce. Być może problem leży właśnie w FBO lub też po prostu za mało doczytałem o samym opóźnionym cieniowaniu – postaram się rozpocząć ten temat w silniku na nowo nieco później.

Dzisiaj rozszerzyłem za to klasę odpowiedzialną za wyświetlanie i wczytywanie (niekoniecznie w tej kolejności) obiektów za pomocą VBO w taki sposób, iż możliwe stało się animowanie modeli (czyli po prostu zwykła zmiana współrzędnych). Miejmy nadzieję, że w przyszłości znacznie ułatwi to wdrożenie modeli wczytywanych z pliku i wszystko będzie dało się zoptymalizować w naprawdę dobry sposób. A ponadto będzie to działać. Co ciekawe, działało to już przy grze, którą pisaliśmy na zaliczenie przedmiotu Grafika Komputerowa i Wizualizacja, tylko tam musieliśmy się dostosować do istniejącego już kodu (a jakże, nie chciał nam się refaktoryzować całości). Przy okazji – na pokazanie samej gry mamy zgodę prowadzącego (pozdrawiam) (oczywiście bez kodu), ale muszę się jeszcze zorientować jak wygląda legalność zasobów, z których skorzystaliśmy. Coś się wymyśli.

Prawdopodobnie na dniach będę projektował cały system materiałów i świateł, aby to, co się będzie działo, miało ręce, nogi, a dodawanie tego przez programistę było naprawdę proste. Muszę przyznać, że dla mnie aż taka obiektowa koncepcja jest pewną nowością, dlatego nie dziwcie się proszę, że poświęcam temu tyle miejsca – to prawie tak ekscytujące jak otwieranie boostera z kartami. A poza tym być może ktoś jest w takiej samej sytuacji jak ja i będzie potrzebował wprowadzenia – chętnie o tym napiszę w odpowiednim czasie.

Generalnie mechanizm materiałów i świateł będzie bardzo mocno powiązany z meshami i węzłami sceny. Pewnie znowu zastosuję tu tyle wielodziedziczenia, że sam się w tym poplączę i będę musiał Toxica oraz Maskla (pozdrawiam obu) męczyć za pomocą różnych środków komunikacji.

Pozdrawiam i dziękuję - SceNtriC

0 komentarze: