ActionScript 2.0 – 3D pierwszej generacji we Flashu

Ikona pliku ActionScriptWraz z nastaniem ActionScript 2.0, jego kontrola nad generowaniem grafiki stała się na tyle duże, że zaczęły powstawać niezależne biblioteki programistyczne, które pozwalały na symulacje dynamicznej trójwymiarowej grafiki przy pomocy technologii Flash. Polegało to na tym, że obliczenia matematyczne i geometryczne wykonywane były przy pomocy języka ActionScript, a następnie ich wyniki stosowane były do generowania dwuwymiarowych obiektów, które mogły być wyświetlane przez Flash Player. Rozwiązanie to jest dosyć powolne i zużywa ogromna ilość zasobów procesora (link).

Obliczenia takie, nawet jeśli nie są bardzo skomplikowane, to muszą być wykonywane dla każdego fragmentu wyświetlanego obiektu z osobna. Proces taki powtarza się za każdym razem, kiedy trójwymiarowa sceny zmieni się, choćby odrobinę – powinien być zatem powtarzane co najmniej 25 razy na sekundę, jeśli chce się zachować wrażenie płynność animacji. Współczesne programy korzystają ze sprzętowego wspomaganie, lub przynajmniej z zestawu specjalnie do tego przeznaczonych, szybkich instrukcji niskiego poziomu – aby odciążyć procesor i przyspieszyć wykonywanie tych kosztownych obliczeń. We Flashu natomiast, wszystkie kalkulacje wykonywane były programowo w powolnym ActionScript. A pamiętać należy, że jest to język skryptowy – jego komendy nie są tłumaczone bezpośrednio na kod maszynowy, ale najpierw interpretowane przez podległy program (tzw. wirtualna maszynę), który dopiero je wykonuje.

Pomimo technologicznych ograniczeń i niskiej wydajności, trójwymiarowe animacje we Flashu zyskały ogromna popularność – głównie za sprawą zręcznie napisanych, zewnętrznych bibliotek, pozwalających na ominięcie tych niedogodności. Pierwszym silnikiem, który pozwalał na imitację 3D było otwarte Sandy3D. Sytuacja z efektywnością Flash Playera znacznie się poprawiła, wraz z nastaniem wersji 10, w której wprowadzono ograniczoną obsługę 3D – można obracać i przemieszczać płaszczyzny w 3 wymiarach, a obliczenia z tym związane wykonywane są na niższym poziomie. Są one zatem szybsze, chociaż nadal nie tak szybki, jak mogłyby być, gdyby były wspomagane sprzętowo. Wciąż także, nie ma możliwości bezpośredniego korzystania z najprostszych trójwymiarowych brył. W wersji 10 dodano także technologię Pixel Bender, która umożliwia optymalizację operacji wykonywanych na poszczególnych, niezależnych pikselach i działa na podobnej zasadzie jak programowalne cieniowanie GLSL (link).

Komentowanie nieaktywne.