AGE
kwiecień 21, 2008 — morituriusNiestety nie było mnie stać na wymyślenie jakiegoś ciekawego tytułu notki więc niestety jest jaki jest… Ale nie tytuł jest najważniejszy! Zebraliśmy się tutaj, aby dowiedzieć się czegoś na temat tego co dzieje się z AGE.
Na początek - postanowiłem wreszcie porzucić zestaw GEdit+Makefile na rzecz środowiska Code::Blocks. Na początku w GEdicie było fajnie, ale niestety w miarę jak rozrastał się projekt przestał mi wystarczać taki zestaw ^^
Drugą, równie ważną, sprawą, jest to, że sprawdziłem wczoraj wieczorem (ok - w nocy) czy AGE skompiluje się pod Windowsem. Bałem się, że nie będzie to należało do przyjemnych doświadczeń. Jak się okazało - nie taki diabeł straszny jak go malują
Najwięcej czasu zajęło mi ściąganie bibliotek SDL oraz Code::Blocks pod windowsa
Potem stworzyłem projekt, dodałem pliki z kodem źródłowym i włączyłem kompilację. Wyrzucił kilka warning’ów odnośnie porównywania signed-unsigned, i jeden błąd.
Okazało, się że w użyłem w jednym miejscu nazwy jaka istniała już jako definicja preprocesora w windows.h. Na szczęście poprawienie tego stanu rzeczy nie zajęło więcej niż minutę. Ponowna próba kompilacji i…. udało się
AGE skompilowało się na Windows z drobnymi poprawkami!
Okazuje się, że decyzja o użyciu SDL+OpenGL była całkiem dobra - przynajmniej względem przenośności kodu. Osiągnąłem całkiem zadowalające efekty dość niskim kosztem.
Ech.. uruchomienie tego samego kodu i zobaczenie go w akcji w 2 systemach sprawia ogromną radochę
Polecam wszystkim wypróbowanie ^^
kwiecień 21, 2008 at 5:25 pm
Co to można powiedzieć, gratki :). Aha, i oczywiście : pokaż demo ;].
kwiecień 21, 2008 at 5:51 pm
@krajek: póki co - walczę z wydajnością
Samo uruchomienie to dopiero cząstka sukcesu 
kwiecień 21, 2008 at 6:45 pm
Takie uruchomienie to nic wielkiego - w wielu przypadkach wystarcza do tego wine
kwiecień 21, 2008 at 6:55 pm
@Xion: Migracja była Linux->Windows tym razem
Wine niewiele pomoże mi na windowsie
Co ciekawe wydajność jest nie-za-wysoka na Windzie, a myślałem, że tam będzie lepiej… No cóż, trzeba pokombinować.
kwiecień 21, 2008 at 8:34 pm
Jeśli chodzi o 2d to nie za bardzo można optymalizować ;p. Używasz porządnie vbo?
kwiecień 22, 2008 at 4:17 przed południem
@Krajek: nie chciało mi się specjalnie kombinować z rozszerzeniami. Wykorzystywałem do tego glDrawArrays, a później glCallLists (z odpowiednim buforowaniem list) - zysk był, ale na 500 obiektach był rzędu 2FPS
To raczej średnio zadowalające. Chyba będę musiał spróbować tych odkładanych wiecznie na później VBO 
kwiecień 22, 2008 at 5:30 przed południem
@Krajek: sprawdziłem VBO. Okazuje się że wydajnościowo leżą dla grafiki 2D podobnie jak listy wyświetlania i rysowanie tablic. Zastanawiam się co jest powoden takiej wydajności - kiedy używałem Windows+DirectX miałem ze 2 razy więcej FPS przy czym rysowałem znacznie więcej obiektów… Niemożliwe, żeby OGL był aż tak wolny w stosunku do DX - coś tu jest nie tak ^^
kwiecień 22, 2008 at 10:47 przed południem
No to ja tez sprawdzę na dniach jak to jest rzeczywiście. Podaj najlepiej jak duże obiekty i jaką teksturę/tekstur używałeś. Ja zrobię to samo i jakoś porównamy wyniki.
kwiecień 22, 2008 at 4:57 pm
@krajek: jak przystało na 2D używam tylko GL_TRIANGLE_FAN (razem 5 wierzchołków) i renderuję na tym teksturę 256×256 - obrazek PNG który ma trochę miejsca całkowicie transparentnego, a reszta jest tak w połowie widoczna. Renderuję to w wielkości 100×100 (pikseli) w ilości 100. Rozdzielczość (w okienku) jest 640×480 i FPS wynosi ~150.