Kolejna wersja Flasha, znana pod kryptonimem Molehill (ang. kopiec kreta), oddaje twórcom do dyspozycji zestaw niskopoziomowych interfejsów programistycznych, które umożliwią Flash Playerowi wykorzystanie mocy drzemiącej w wyspecjalizowanych układach graficznych. Obliczenia, które były dotąd wykonywane programowo przez główny procesor (CPU), przeniesione zostaną do graficznej jednostki przetwarzania (GPU), w którą wyposażony jest każdy nowy komputer. Molehill opiera się na interfejsie DirectX na platformie Windows, na OpenGL w systemach typu Linux i Mac oraz na OpenGL ES w urządzeniach przenośnych. Dostępny jest również programowy renderer SwiftShader, w wypadku gdyby kompatybilny sprzęt nie został znaleziony.
Tag: flash
Stage 3D aka Molehill – początki rewolucyjnej technologii 3D we Flashu
Ciekawe projekty Flash 3D
Oprócz projektów z głównego nurtu, w sieci znaleźć można aplikacje mniej wszechstronne, napisane hobbystycznie, które twórcy udostępniają, chociaż nie zapewniają do nich dokumentacji. Wiele z nich jest jednak wartych uwagi, że względu na ciekawy pomysł, jak na przykład 3D Pixel Fun (link). Można w nim zbudować trójwymiarowy świat złożony z sześcianów (na wzór pikseli w 2D). Autor, zainspirowany projektem Q-BLOCK (link) stworzył nawet konwerter modeli z formatu Collada do swojego „blokowego” świata. Z kolei silnik FFilmation (link) przeznaczony jest do prostego tworzenia gier – umożliwia szybkie tworzenie izometrycznych scen, których struktura zapisana jest w pliku XML, wspomaga animację postaci, detekcję kolizji i oświetlenie.
- 3D Pixel Fun: http://www.neuroproductions.be/experiments/3d-pixel-fun/
- qBlock: http://kyucon.com/qblock/
- FFilmation: http://www.ffilmation.org/website/about/
Sophie 3D
Poza opisanymi powyżej technologiami, istnieją na rynku rozwiązania które kosztem uniwersalności, skupiają się na konkretnym zastosowaniu. Doskonały przykładem może być Sophie3D – jest to komponent, który pozwala w szybki sposób opublikować trójwymiarowy model zapisany w formacie Collada lub Wavefront Obj i dodać do niego prostą nawigację (link). W zamian za poświęcenie pewnych aspektów interaktywności i animacji, Sophie 3D oferuje bardzo dokładny i szybki rendering obiektów.
Copper Cube
Wyjątkiem wśród przedstawianych tutaj technologii 3D we Flashu jest program CopperCube austriackiej firmy Ambiera (link). Jest to kompletne, wizualne środowisko do edycji trójwymiarowych scen, w którym można zarówno stworzyć prostą wizualizację produktu, jak i zaawansowaną symulację – a wszystko to bez potrzeby pisania nawet linijki kodu (chociaż istnieje też możliwość kontrolowania elementów sceny za pomocą skryptów). CopperCube oferuje kilka ciekawych funkcji przydanych szczególnie przy tworzeniu gier, jak na przykład wbudowane modele zachowań („sztuczna inteligencja”) które można przypisać postaciom. Cały pakiet jest naturalnie płatny, że strony producenta pobrać można 14-dniową wersję próbną.
- CopperCube: http://www.ambiera.com/coppercube/
FIVe3D
FIVe3D podchodzi do zagadnienia symulacji 3D we Flashu w nieco odmienny technologicznie sposób – zamiast transformować bitmapy, tak jak poprzednie opisane silniki – wykorzystuje operacje na wektorach (link). Dzięki temu, operacje są szybsze, a sama biblioteka zajmuje bardzo niewiele. Jedną z zalet jest obsługa fontów opartych na wektorach. Pozwala to na uniknięcie efektu „pikselozy” i wyświetlanie ostrych krawędzi liter nawet przy dużym powiększeniu.
Flare 3D
Flare3D to kolejny, zaawansowany silnik, który nie jest otwartym oprogramowaniem (link). Biblioteka jest dostarczana wraz z bardzo dobrą dokumentacją i zestawem tutoriali, importerem plików 3Dstudio max oraz wizualnym narzędziem do edytowania sceny. Wydajność generowania grafiki jest wysoka, chociaż nie odbiega od innych wiodących projektów opartych na Flash 10 (link). Cały zestaw można wykorzystać za darmo, dla niekomercyjnego użytkownika. W przeciwnym wypadku, za możliwość tworzenia we Flare3D trzeba uiszczać coroczną opłatę (link).
- Flare 3D: http://www.flare3d.com/
Alternativa 3D
Czwartym z dużych graczy na rynku bibliotek do obsługi 3D we Flashu jest Alternativa3D (link). Nie jest to oprogramowanie otwarte i do niedawna za jego wykorzystanie trzeba było płacić – obecnie jednak rosyjskie studio odpowiedzialne za stworzenie Alternativa Platform, umożliwiło użycie technologii za darmo nawet w komercyjnych projektach (jedynym warunkiem jest umieszczenie odnośnika do ich strony). Projekt jest intensywnie rozwijany, obsługuje Flash 10 i zdaje się zmierzać w kierunku silnika do tworzenia wieloosobowych gier online. Zbiera bardzo pozytywne recenzje, szczególnie za wydajność i szybkość działania (link)
- Alternativa Platform: http://alternativaplatform.com/en/
Away 3D
Jednym z najpopularniejszych obecnie projektów poświęconych 3D we Flashu jest Away3D (link). Silnik ten wywodzi się z PaperVision3D, jest jednak wciąż intensywnie rozwijany i udoskonalany. Wykorzystuje możliwości obróbki 3D, które daje Flash 10, co zapewnia mu znacznie lepszą wydajność, posiada także bardzo lekką wersję Away3D Lite. Atutem Away3D jest wizualny edytor stworzony w zintegrowanym środowisku wykonawczym Adobe (AIR – Adobe Integrated Runtime). Umożliwia on stworzenie interaktywnej trójwymiarowej aplikacji działającej we Flash Playerze, bez konieczności pisania kodu (link).
- Away3D: http://away3d.com/
- PreFab3D: http://www.closier.nl/prefab/
Sandy 3D
Zanim powstało PV3D, w 2005 roku, obsługę 3D we Flashu oferował silnik Sandy3D. Projekt ten miał swoje wzloty i upadki, nigdy jednak nie zdobył takiej popularności jak PaperVision (link). Sandy3D, poza współpracą z ActionScript w wersji 2.0 oraz 3.0 obsługuje także uniwersalny język programowania zorientowany na tworzenie aplikacji przeznaczonych do internetu HaXe. Dużą zaletą jest to, że dostępna jest pełna dokumentacja oraz cały zestaw szkoleń zebranych na stronie domowej projektu (link). Obecnie biblioteka nie jest już rozwijana, a jej tworzenie zatrzymało się również na wersji Flash 10 (chociaż nie wykorzystuje wszystkich jej możliwości). Podobny los spotkał WireEngine3D, które chociaż bardzo dobrze radziło sobie z poprawnym wyświetlaniem tekstur na przecinających się płaszczyznach (wiele początkowych silników miało problemy z zachowaniem poprawnej perspektywy, podczas generowania tekstur na obiektach), nie jest już kontynuowany, a prace nad nim zostały przerwane jeszcze przed nastaniem Flash 10.
- Sandy 3D Engine: http://www.flashsandy.org/
Papervision 3D
Istnieje obecnie kilka rozwiązań pozwalających na otrzymanie 3D we Flashu. Najpopularniejszy i uważany za najszybszy, był PaperVision3D (link). Można naturalnie spierać, który rozwiązanie jest lepszy do jakich zastosowań – wiele takich dyskusji znaleźć można do dziś na forach poświęconych programowaniu w AS – jednak do pewnego czasu, to właśnie PaperVision3D wiódł prym wśród silników przeznaczonych dla środowiska Flash w wersji 8 i 9 (link). Niestety, w wyniku pewnych niezgodności odnośnie przyszłości projektu PV3D, zespól podzielił się i rozpoczęto pracę nad dwoma niezależnymi nowymi wersjami, które miałyby wykorzystywać możliwości które daje Flash 10 (link). PaperVision pozostaje kompletnym i wciąż bardzo dobrym interfejsem programistycznym, do którego dostępnych jest wiele tutoriali. Jednak nie jest obecnie rozwijany i wszystko wskazuje na to, że nowa wersja nie ujrzy już światła dziennego (link).
- Papervision 3D: http://www.papervision3d.org/
Pierwsze kroki w 3D – przykładowy projekt ActionScript, z użyciem Away3D
Za wyjątkiem CopperCube oraz narzędzia PreFab do silnika Away3D, wszystkie przedstawione rozwiązania były mniej lub bardziej skomplikowanymi bibliotekami napisanymi w ActionScript. Aby stworzyć za ich pomocą trójwymiarowe sceny i opublikować je jako obiekt, który może być odtwarzany przez Flash Player, musimy użyć odpowiednio skonfigurowanego środowiska programistycznego (IDE). Najpopularniejsze z nich to komercyjny Adobe Flash Builder (link) (znany wcześniej jako Flex Builder) oraz FlashDevelop (link). Każde z nich ma swoje wady i zalety (link), pierwsze z nich jest oparte o Eclipse – może korzystać z wszelkich rozszerzeń stworzonych dla tego środowiska, posiada też dużą społeczność, co pozwala na łatwiejsze uzyskanie pomocy na wszelkiego rodzaju forach. Flash Builder jest też pomocny jeśli korzystamy z języka Flex, gdyż zawiera wizualny edytor MXML. FlashDevelop jest natomiast dużo lżejszy i przejrzystszy, a przede wszystkim jest oprogramowaniem otwartym (Builder jest natomiast bezpłatny dla celów edukacyjnych, oraz dla bezrobotnych twórców). Do tworzenia aplikacji Flashowych we FlashDevelop, należy dodatkowo pobrać udostępniony przez Adobe zestaw narzędzi programistycznych Flex SDK (link).
ActionScript 2.0 – 3D pierwszej generacji we Flashu
Wraz 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).
Historia Flasha, czyli Super Paint, Macromedia i Jonathan Gay
Prekursorem formatu który znamy dzisiaj, jest prosty edytor graficzny, napisany przez ojca Flasha Jonathana Gay’a, w szkole średniej – Super Paint. Po ukończeniu studiów, Gay pracuje dla Silicon Beach Software, gdzie tworzy udoskonalony edytor Intellidraw, a następnie zakładał swoja własną firmę FutureWave Software (link). Tworzy ona oprogramowanie pozwalające na rysowanie na komputerze z użyciem „elektrycznego pióra” – technologii stworzonej i promowanej przez firmę GO, która jednak ostatecznie upada. Z powodu pozytywnego odzewu użytkowników, program SmartSketch nie znika z rynku razem ze zniknięciem platformy na której można go używać, zamiast tego przeniesiony zostaje na system Windows oraz Macintosh. Jest polowa roku 1995 i na świecie popularny staje się nowy koncept o nazwie Internet. SmartSketch ewoluuje natomiast w narzędzie do tworzenia animacji, które mogą być odtwarzane na stronach World Wide Web przy pomocy playera opartego na technologii Java, a następnie jako wtyczka do przeglądarki Netscape.
Adobe Flash – ogólnodostępny standard grafiki wektorowej
Jednym z głównych problemów z jakimi zmagają się technologie wyświetlania grafiki 3D na stronach www, jest konieczności instalowania dodatkowego oprogramowania, najczęściej w formie wtyczki. Jak dotąd, żadna z przeglądarek nie obsługuje domyślnie (w sensie – bez potrzeby instalowania rozszerzeń) powszechnej technologii umożliwiającej umieszczanie dynamicznych trójwymiarowych obrazów na wyświetlanych witrynach. Użytkownicy niechętnie instalują nowe oprogramowanie pobrane z sieci. Powodem może być obawa o bezpieczeństwo swojego komputera i strach przed wirusami komputerowymi oraz innym niebezpiecznym programami. Czynnikiem zniechęcającym może być wielkość pluginu, który trzeba pobrać z sieci, a co za tym idzie czas na to potrzebny. Również czas instalacji rozszerzenia, a niejednokrotnie konieczności ponownego uruchomienia przeglądarki sprawiają, że zadajemy sobie pytanie o sens instalacji wtyczki, która użyjemy do wyświetlenia jednej trójwymiarowej animacji…
Czy ze stron 3D można wyżyć, czyli kwestia zabezpieczania treści
Istotną kwestią, na którą należy zwrócić uwagę przy podsumowaniu poszczególnych rozwiązań, jest ich zdolność do dostarczenia treści wystarczająco zabezpieczonych. Na świecie istnieje wystarczająco duża ilość entuzjastów wolnego oprogramowania, żeby stworzyć darmowe narzędzia do wykorzystania w domenie Web3D. Aby jednak odniosły one sukces – a co za tym idzie, zyskały powszechną popularność – potrzebna jest ciekawa treść za ich pomocą przedstawiona. A to zazwyczaj wiąże się z koniecznością odwołania się do modelu o bardziej biznesowym charakterze.
Co wybiorą użytkownicy, czyli kwestia dostepności
Jednym z najważniejszych czynników przy wyborze technologii którą planuje się zastosować jest jej dostępność, rozumiana tutaj jako możliwość oglądania treści, bez konieczności instalowania dodatkowych komponentów. Badania przeprowadzone przez Unity3D pokazują, że wielu użytkowników rezygnuje z dalszego przeglądania strony, jeśli wymagane jest do tego pobranie i uruchomienie wtyczki (patrz rozdział o Unity3D). Powody mogą być różne: poczynając od obawy przed niebezpiecznym oprogramowaniem, na nieposiadaniu wystarczających praw administracyjnych kończąc, gdyż wiele osób korzysta z internetu także w pracy, gdzie mogą mieć ograniczony dostęp.
Dostępne technologie Web3D
Web3D rozwija się aktualnie w bardzo dynamiczny sposób, a największymi gwiazdami które zetrą się ze sobą w najbliższej rundzie, będą prawdopodobnie Adobe Flash (w kolejnej odsłonie, o kryptonimie Molehill) oraz WebGL. Nie są to jednak jedyni gracze – na rynku od lat istnieją aplikacje które pozwalają na osadzanie interaktywnej, trójwymiarowej grafiki na stronach www.