niedziela, 15 marca 2009

Pseudo 3D w "CLONE WARS" (flash)

Wspominałem ostatnio o tym, że dwie stacje TV emitują równolegle serial "Wojny klonów" (Ossus), teraz wszedłem sobie na www.CartoonNetwork.pl i okazało się, że mają oddzielną stronkę poświęconą temu serialowi.

Tu jest to co można zobaczyć na wspomnianej stronce - widzimy tu dwie duże postacie wygenerowane w 3D. Kursorem myszki możemy nieznacznie obracać tym szczególnym ujęciem.


Nie jest to prawdziwe 3D, lecz jedynie jego namiastka - ale trudno tego nie docenić. Biorąc pod uwagę, że jest to zrobione w Adobe Flash - to dodać mogę jedynie, że w takie rzeczy to bawią się właśnie ludzie Lucasa;)


Update:
Umieszczam obrazek z dyskusji do tego posta:

Od Ciekawe

9 komentarzy:

Anonimowy pisze...

TDC, dlaczego uważasz, że w tym menu jest "pseudo 3D" ? Ja tam widzę pełny rendering z PV3D - a co to jest, chyba nie muszę tłumaczyć...

Tdc pisze...

MaW, pełny rendering zaczyna się i kończy na tym, że przygotowano kilka klatek pod różnym kątem tych dwóch "pań". Tak jak dziś uważa się że spritesy w Doom lub w Duke, są "pseudo 3D" - tak samo tutaj. Kilka klatek + proste efekty blittowania to trochę za mało ;)

Anonimowy pisze...

TDC, mylisz się - że programista ograniczył ruch kamery do paru stopni, to nie oznacza, że nie jest to pełny 3D. Na pewno nie jest to "kilka klatek", bo PV3D operuje taką mocą, że klatkowanie wogóle jest niepotrzebne.

Więc mylisz się, albo pokazujesz ignorancję względem użytej technologii...

Anonimowy pisze...

http://www.cleoag.ru/labs/flex/parkseasons/

Tdc pisze...

Nie mam pojęcia co zostało użyte do zrobienia tego (bo nie zajmuję się flashami), jednak to nie jest PV3D: przyjrzyj się dokładnie temu co widać (postacie i tło). Następnie poruszaj myszką na boki, a potem z góry na dół. To nie jest 3D, lecz mistyfikacja (np. tło jest generowane podobnie jak w grze Doom). Mam doświadczenie w pisaniu takich programów, kończy się na wyznaczeniu kilku sinusów;)

Anonimowy pisze...

Tło jest też obiektem PV3D, jednakże jest to płaski raster rozciągnięty na wycinku sfery, a więc jest to obiekt dwuwymiarowy, ale obracany zgodnie z zasadami perspektywy (warto zrobić sobie printscreeny w kilku pozycjach i nałożyć je na siebie - efekt użycia rzutu panoramicznego widać jak na dłoni). Postacie w pierwszym planie - nie chce mi się szukać kogoś z dekompilatorem, bo bym je wyciągnął - to pełne obiekty 3D od A do Z, biorąc pod uwagę zniekształcenie tekstur - zaimportowane do flasha za pomocą Collady.

Tdc pisze...

he, he – robi się coraz ciekawiej ;)

Wiesz MaW ja bardzo lubię wszelkie dyskusje itp. jednak tylko wtedy kiedy obie strony bawią się dobrze oraz gdy obie strony nie denerwują się zanadto ;)

Dlatego wierząc, że obaj dobrze się bawimy będę temat ciągnął dalej, nie dlatego, że chcę Tobie udowodnić coś itp. ale dlatego, że pisałem wiele takich programów i ten wygląda identycznie jak te moje.

W mojej ocenie tło być może jest faktycznie obiektem PV3D, jednak przetwarzane jest z uproszczeniami.
Zadam Tobie jedno pytanie: dlaczego obiekty poruszają się w 3D gdy poruszamy kursorem z lewej na prawą, a gdy poruszamy z góry na dół to już stają się płaskie i jedynie się przesuwają (wcześniej wspominałem o blittowaniu) zwróć uwagę np. na skrzyżowane miecze – powinny się poruszać w 3D po Y (podobnie ręcę Asajj Ventress lub jej podwójne paski). Wg mnie odpowiedź jest prosta wygenerowanie kilku klatek animacji jest średnio pamięcio i netożerne, natomiast chcąc wygenerować oddzielne obrazki dla zmian pod względem X i Y spowoduje zwiększenie ilości klatek (i wykorzystania zasobów) w sposób prawie wykładniczy – co już się nie opłaca (w stosunku do osiągniętego efektu).

Myślę, że już wszystko jasne;)

Anonimowy pisze...

ech... jest taka różnica, że ja przy takich scenach siedzę i je tworzę WE FLASHU, a nie próbuję udawać, że je robię w czymś innym...

akurat efekt mieczy to efekt z filtra blur, który jest dwuwymiarowy, więc i na ekranie będzie wyglądał jak dwuwymiarowy, ale żeby to wiedzieć i na tym się znać to trzeba dużo godzin przy flashu spędzić by mieć pojęcie o tym co jest użyte.

Zerknąłeś na link od anonimusa ? zapewne też wg. Ciebie będzie to całość robiona poprzez nakładanie kolejnych klatek, a z tego co widzę, to zasada jest taka sama jak w tym, co "krytykujesz".

Tdc pisze...

MaW, nie mam zamiaru w żaden sposób komentować Twojego warsztatu, Twojego doświadczenia i wiedzy (na tym polu na pewno mnie przerastasz pod każdym względem).

Zerknąłem na link i bardzo mi się to podoba, jednak nijak się to ma wg mnie do tego o czym mówię, jednak zaraz wszystko dokładnie wyjaśnię:
((jeszcze dodam, że różnica ilości wierzchołków potrzebna do zbudowania sceny z linku (widoczne jest wyraźnie że jest ich mało) jest przytłaczająca w stosunku do ilości wierzchołków tych dwóch postaci z mieczami świetlnymi))

Z wspomnianym blurem, to jakieś nieporozumienie. Bo efekt ten oczywiście w istocie swej przetwarza płaskie bitmapy. Jednak mi chodziło o wyznaczanie współrzędnych punktów 3D, z których wg Ciebie składają się widoczne obiekty. Dlatego blur nie może mieć tutaj wpływu na te współrzędne, jednak analiza tych współrzędnych w ruchu kursorem po X i po Y może nam pomóc w ustaleniu czy współrzędne położenia są wyznaczane za pomocą tradycyjnego rzutowania 3D (z uwzględnieniem perspektywy).

Przygotowałem obrazek, na którym wybrałem sobie charakterystyczne punkty (łokcie), są one tak dobrane, że podczas przeliczeń perspektywy muszą się przemieszczać z dużą różnicą ponieważ jeden wybrany punkt jest dalej od widza, a drugi jest bliżej (czyli jeden łokieć zasłania ten dalszy).
W pierwszym górnym obrazku widoczne są skrajne zrzuty ekranu względem współrzędnej X, a w drugim dolnym obrazku są widoczne skrajne zrzuty w przesunięciu względem Y.
Na obu obrazkach (dolnym i górnym) zaznaczyłem kolorem zielonym i żółtym dwa prostokąty wskazujące (na tyle dokładnie na ile mi się udało) te same punkty ale na skrajnych zrzutach ekranowych. Analiza wielkości prostokątów w prosty sposób ukaże gdzie jest liczona perspektywa (czyli 3D) a gdzie nie jest liczona.

Teoria: mało jest prawdopodobne aby przy w obliczeniach perspektywy podczas obrotów długości boków zaznaczonych prostokątów były identyczne (może się tak zdarzyć ale w specyficznej sytuacji czyli niezwykle rzadko – co oczywiście tu nie ma miejsca bo tak dobrałem skrajne punkty).

A oto współrzędne:
1. Pierwszy obrazek (górny)
Zielony: po X: 210 - 373

długość: 163



pierwszy żółty:

po X: 279 - 298
długośćł: 19



2. Pierwszy obrazek (górny), mniej istotny Y:
po Y: zielony: 174 - 265

długość: 91



żółty: 181 - 275

długość: 94

Jak widać i mniej istotny Y również został nieco przesunięty (co ma prawo się wydarzyć przy wyznaczaniu współrzędnych 3D w rzutowaniu z uwzględnieniem perspektywy itp.).



3. Drugi obrazek (dolny)
zielony: po X (tu jest mniej istotny X):
278 - 299

długość: 21


drugi żółty: po X: 278 - 299

długość: 21



4. Drugi obrazek (dolny):

zielony: po Y: 754 - 847

długość: 93 !



żółty: po Y: 724 - 817

długość: 93 !

Jak widać w punkcie 4, długość po Y jest zawsze 93 mimo, że właśnie w dolnym obrazku, to właśnie przesunięcia po Y są najistotniejsze i powinny wykazywać podobne różnice jak te które są widoczne w punkcie 1 (po X dla górnego obrazka). Brak tej różnicy to jest właśnie to o czym mówiłem, że tu mamy do czynienia jedynie z blittowaniem po Y statycznego obrazu (niewyliczanego z obiektów składających się z wierzchołków 3D).

Oczywiście porównanie współrzędnych Y innych charakterystycznych punktów (na dolnym obrazku) możesz wykonać samodzielnie i dadzą te same wyniki, co oczywiście nie jest możliwe aby w wyznaczaniu wierzchołków wszystkie na scenie miały to samo przesunięcie. Szczególnie możesz sobie porównać ustawienia mieczy świetlnych, o których wcześniej wspominałem: na dolnym obrazku są identyczne, a na górnym widać wyraźnie, że jednak muszą się one przesuwać po Y na dolnym tak jak się przesuwają po X na górnym. Dlatego owo przetwarzanie blura, o którym wspominałeś pewnie jest faktem, ale opisuje zupełnie inne zagadnienie.

Skoro jesteś tak przekonany co do zastosowania wspomnianych zaawansowanych technik 3D to nie będę się z Tobą co do tego spierał (na pewno masz większą wiedzę i doświadczenie ode mnie). Jednak na obrazkach wyraźnie widać, że owo 3D jest mówiąc delikatnie mocno kulawe ;)

Oczywiście w każdej chwili mogę podesłać oryginalny obrazek (z warstwami), gdzie wszystko jeszcze dokładniej widać (a manewrując przezroczystością warstw można jeszcze dokładniej prześledzić różnice).

Pozdrawiam!



Jeśli nie jest zaznaczone inaczej (lub nie jest zaznaczone wcale) zamieszczone ilustracje pochodzą z Wikimedia Commons lub są mojego autorstwa.


Ta strona używa cookies oraz innych technologii Google (i innych firm w specjalnych dodatkach po prawej stronie) w celu prawidłowego działania tej stronki (jej elementów jak np. ankiety, reklamy itp.) oraz zbierania statystyk. Korzystanie z tego bloga powoduje zapisywanie typowych plików na Twoje urządzenie (np. komputer, tablet itp.) o ile w ustawieniach przeglądarki nie zmienisz tego.

W UE się ludziom w głowach przewraca, więc dla świętego spokoju zamieściłem to absurdalne ostrzeżenie...