czwartek, 9 czerwca 2011

[Sokoban] #2

Dobra, nie wiem kto kiedyś wpadł na ten pomysł, ale renderowanie grafiki trójwymiarowej przy użyciu Flasha to jakaś pomyłka.

Po długiej walce z Papervision stwierdziłem, że nie jestem w stanie ogarnąć sposobu działania tej biblioteki, dlatego wczoraj podjąłem decyzję o przejściu na Sandy3D. Największym problemem Papervision jest zupełny brak intuicyjności w wykonywanych operacjach. Sandy3D też nie jest wolne od tego problemu, ale tutaj nie miałem problemu w zrozumieniu sposobu działania 3D we Flashu. Czy raczej powinienem napisać pseudo3D, bo zadaniem biblioteki S3D jest przekonwertowanie trójwymiarowych bytów na sprite'y wyświetlane później na scenie. W przypadku dużej liczby obiektów, generowanie sprite'ów po prostu nie może trwać krótko. Flash sam w sobie jest dosyć pamięciożerną technologią a dodatkowe obliczenia geometryczne gwarantują spadek fps'ów nawet przy prostej grafice. Zatem pytanie brzmi - po co generować trzeci wymiar we Flashu? Zwłaszcza, że teraz możemy to robić tańszym kosztem.

Innym problemem związanym z generowaniem sprite'ów jest ich kolejność. S3D nie uwzględnia czegoś takiego jak bufor głębokości przez co sprite'ty nakładają się na siebie w sposób który burzy iluzję trzeciego wymiaru. Problem ten jest widoczny w nowej wersji kodu który wgrałem na serwer.

Ponadto ciągle nie mogę się zorientować w jaki sposób S3D przechowuje informacje o tych sprite'ach dlatego też po przejściu z jednego etapu dwa etapy rysują się jednocześnie. Mam kilka pomysłów jak to rozwiązać, ale muszę odstawić na chwilę ten projekt, żeby zająć się zaliczeniami innych przedmiotów.

Brak komentarzy:

Prześlij komentarz