Pierwsze kroki z Ogre

Jako iż konwerter danych spod starego silnika Pył’u do nowego w zakresie grafiki i animacji jest kompletny to zacząłem pracę nad właściwą grą. Pierwsze przymiarki z Ogre dały do myślenia:

35 FPS? No to lekka przesada, tyle to było w 1998 roku. Oczywiście do przewidzenia było iż nie tędy droga – wrzucenie wszystkiego w renderer Ogre bez uwzględnienia jego specyfiki to na pewno nie był dobry pomysł. Szybko okazało się iż prócz paru drobnych spraw kluczowa jest oświetlenie a konkretnie sposób jego implementacji dla statycznej geometrii. W starym Pyle były to prerenderowane mapy światła dla każdej powierzchni. Jako iż w tamtym silniku sam zarządzałem każdym bitem to mogłem spokojnie zarządzać buforem tych map i w czasie rzeczywistym nakładać je na tekstury do drugiego bufora przetrzymującego dane powierzchni w zasięgu widzenia. W dzisiejszych czasach górą są skrypty materiałów i batching czyli przepychanie do renderera zbiorów trójkątów opartych na tych samych materiałach. Ja – mając po prostu wszystkie powierzchnie różnicowane światłem miałem beznadziejny poziom bathingu. Trochę zmian i przechodzimy na rzeczywistą liczbę różnych materiałów użytych na mapie. Efekt od razu – 500 FPS 🙂 Tylko co teraz zrobić ze światłem? Opcja w zasadzie jedna – napisać własne shadery na GPU by kleić mapy światła i tekstury w locie. Do przemyśleń.

Advertisements

5 thoughts on “Pierwsze kroki z Ogre

  1. 35 FPS? Tyle to nie udało mi się uzyskać nawet po użyciu nGlide, o kombinowaniu z DOSbox i dFend Reloaded nie wspominając, tam była połowa tego.
    Swoją drogą zaciekawił mnie ten silnik OGRE. Ciekawe co mógłbym w nim zdziałać…

    • Dzisiaj trzeba inaczej pakować dane do akceleratora niż kiedyś. W pierwszych pomysłach na konwersję kombinowałem z napisaniem własnej biblioteki udającej glide i robiącej przekierowanie na DirectX lecz to by się nie udało właśnie z powodu innego podejścia do renderowania. Ostatnio dzięki uprzejmości kolegów z rosji odpaliłem grę na DOSBoxSVN z Glide i bez Glide. Wszystko działa – nawet dźwięk. Widać jednak iż to wolno chodzi. Renderer programowy był bardzo mocno żyłowany pod architekturę Pentium o dwóch potokach bo takie wtedy były na topie. O ile pamieć mnie nie myli to wtedy działało to pod Win95 na standardowej nakładce DOS4GW szybciej niż na mojej maszynie teraz pod emulacją. Zdecydowanie szybciej. Stąd idea konwersji 🙂

  2. Jarku masz gdzieś skróty developerskie do Pyłu (o ile nie zostały wyłączone w wersji final) – ciekawi mnie ile u mnie wyciąga fps – muszę przyznać że na tzw “oko” jest to raczej nie mniej niż jakieś 20fps.

    • No więc ten – teges niby włączyć się da wg. kodu ale nie włącza się. A nawet – potrafię włączyć w grze debuggery różnych rzeczy, grafy, dźwięk 3D lecz nie wiem czemu debugerry renderowania się nie uruchamiają. Nie kumam. Może te emulatory coś jednak mieszają z klawiaturą i przechwytują klawisze F2 i F3 z SHIFT (działa w trybie “developer” – opisze to innym razem w poście jakimś pewnie).

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s