pic
Pomimo iż technologia WebGL jest stosunkowo młoda, już dostępna jest bogata baza frameworków. W zasadzie jest ich tak dużo, że na początku trudno któryś wybrać. W ostatnim czasie miałem okazję spróbować kilku z nich i podzielę się z  wami moimi spostrzeżeniami. Ostrzegam, że pewne cechy bibliotek, o których piszę mogą się zmienić w czasie (np. uwagi dot. niepełnych dokumentacji). Dodatkowo oceniałem ich możliwości pod kątem swoich potrzeb, ktoś inny może mieć inne wrażenia. SceneJS Dynamicznie rozwijany Framework z API sceny opartym na formacie JSON. Projekt zapoczątkowany przez Lindsay Key, aktualnie rozwijany przez kilka osób. Framewo...
pic
Artykuł poświęcony jest eksportowaniu modeli (stworzonych w programie blender) do formatu JSON i ładowaniu ich w WebGL. Zrobimy również mały porządek z shaderami, które wrzucimy do osobnych plików, co daje lepszą czytelność i pozwala chociażby na kolorowanie składni, jeśli mamy edytor, który rozpoznaje GLSL. Lekcja ta jest modyfikacją poprzedniej lekcji. Efekt końcowy na rysunku poniżej lub na żywo tutaj. JSON (JavaScript Object Notation) jest czytelnym i intuicyjnym formatem, który ma swoje korzenie w JavaScript (więcej możecie doczytać na wikipedii). JavaScript posiada wbudowany obiekt globalny JSON, który potrafi parsować ten format. Poniżej mamy zaw...
pic
Ukończyliśmy właśnie prace nad grą "Vehicle Soccer". Jest to trójwymiarowa zręcznościówka polegająca na umiejętnym manewrowaniu jednym z pojazdów w celu łapania, uderzania oraz omijania różnych piłek na arenach. Grać można samemu przechodząc i odblokowując kolejne rundy (tryb single) lub w 2 osoby na jednej klawiaturze starając się zdobyć więcej punktów od przeciwnika (tryb multi). Gra została wystawiona do konkursu Mozilla Labs - Game ON więc możecie trzymać kciuki i jeśli wam się spodoba - oddać swój głos :-) Lista wszystkich gier zgłoszonych do konkursu znajduje się w galerii gier konkursu Game On. Aby zagrać wystarczy kliknąć w scr...
pic
źródło: Mozilla Konkurs skierowany jest do niezależnych twórców gier. Aby wziąć w nim udział trzeba stworzyć grę przeglądarkową wykorzystującą wyłącznie otwarte standardy webowe. Mile widziane są nowo powstające technologie takie jak WebGL, czy HTML5. Zasada jest jedna: gra musi być kompatybilna z przegladarką Firefox w najnowszej (testowej jeszcze) wersji 4.0. Gdy gra będzie gotowa, trzeba zarejestrować się na oficjalnej stronie wydarzenia: gaming.mozillalabs.com i podać nazwę, krótki opis oraz link do dzieła umieszczonego w sieci. Podczas oceniania gier brane będą pod uwagę następujące walory: Poprawność techniczna (engine, kod), wykorz...
pic
Dzisiaj dodamy trochę światła do naszej sceny. Lekcja ta bazuje na kodzie jednej z poprzednich: Porządek w kodzie i omówię jedynie różnice. Efekt końcowy dzisiejszej lekcji zobaczyć możecie na rysunku poniżej, lub na żywo tutaj. Możecie również pobrać kod dzisiejszej lekcji. Osoby zaznajomione z OpenGL mogą być trochę zawiedzone faktem, że WebGL (który bazuje na OpenGL ES) nie posiada automatycznego wsparcia dla światła (czytaj funkcji ustawiających pozycję, kolor itp. parametrów światła). Wszelkie obliczenia związane z oświetleniem musimy zrobic sami w shaderach. Przytoczona tu metoda jest tzw. "opartą na wierzchołkach". Znaczy to tyle, że...
lis

21

frameworks_logo

Pomimo iż technologia WebGL jest stosunkowo młoda, już dostępna jest bogata baza frameworków. W zasadzie jest ich tak dużo, że na początku trudno któryś wybrać. W ostatnim czasie miałem okazję spróbować kilku z nich i podzielę się z  wami moimi spostrzeżeniami.

Ostrzegam, że pewne cechy bibliotek, o których piszę mogą się zmienić w czasie (np. uwagi dot. niepełnych dokumentacji). Dodatkowo oceniałem ich możliwości pod kątem swoich potrzeb, ktoś inny może mieć inne wrażenia.

SceneJS

Dynamicznie rozwijany Framework z API sceny opartym na formacie JSON. Projekt zapoczątkowany przez Lindsay Key, aktualnie rozwijany przez kilka osób.

Framework poprzez specyfikę swojego API oddala nas od niskopoziomowego WebGLa.

Zalety:

  • Dobrze zaprojektowane API.
  • Dobra dokumentacja z wieloma przykładami.
  • Bardzo dobre wsparcie poprzez grupę google, szybkie rzeczowe odpowiedzi.
  • Bogata otoczka: facebook, youtube, Wiki, Google group, github.
  • Sporo przydatnych feature’ów (świetny picking).
  • Wydajna, wygodna przy tworzeniu statycznych scen.

Wady:

  • Bardziej skomplikowana przy tworzeniu dynamicznych scen (duże modyfikacje grafu sceny w czasie rzeczywistym są mało wygodne oraz niezbyt wydajne).
  • Brak narzędzi przydatnych przy tworzeniu gier (kolizje itp.).
  • Trudno zaadoptować dodatkowe narzędzia wspomagające np. fizykę.
  • Abstrakcja oddalona od niskopoziomowego API WebGL’a nie każdemu może odpowiadać.

Podsumowując biblioteka nadaje się do tworzenia raczej statycznych scen, schematów oraz wizualizacji. Jednak przy programowaniu gier, gdzie potrzebujemy łatwej możliwości modyfikacji sceny, może okazać się nieco toporna.

X3DOM

Ciekawy Framework umożliwiający opisywanie scen za pomocą znaczników, przy czym poszczególne elementy sceny stają się fragmentami drzewa DOM i można manipulować nimi za pomocą JavaScriptu w podobny sposób jak typowymi elementami strony.

Zalety:

  • Ciekawe, wygodne API.
  • Prostota, nie potrzeba posiadać szczególnej wiedzy o grafice, ani o WebGL aby stworzyć ładnie wyglądającą scenę.
  • Export do formatu .x3d dostępny natywnie w blenderze.

Wady:

  • Brak dostępu do niskopoziomowego API.
  • Kiepska z dokumentacja.
  • Zdecydowanie nie nadaje się do dużych, dynamicznych scen.
  • Ani do gier.

CopperLicht

Framework tworzony przez firmę Ambiera, twórców popularnej biblioteki IrrLicht.

Zalety:

  • Framework dedykowany do tworzenia gier komputerowych.
  • Dużo przydatnych narzędzi przy tworzeniu gier.
  • Kontakt przez Forum.
  • Dość przyzwoita dokumentacja, kilka tutoriali oraz dem.
  • Zintegrowany z edytorem CupperCube, który służy do tworzenia scen oraz eksportu do formatu obsługiwanego przez CopperLicht.

Wady:

  • Powolny rozwój. Nad kodem pracuje jedna osoba.
  • Zamknięty kod. Pełne, czytelne źródło biblioteki jest płatne.
  • Mało przykładów w sieci.
  • Narzędzie CupperCube (które zdaniem niektórych jest największą zaletą biblioteki) płatne.

Three.js

Ciekawy Framework zainicjowany na potrzeby projektu RO.ME “Three Dreams of Black”. Stale rozwijany przez mrdoob i wielu innych.

Zalety:

Wady:

  • Brak pełnej dokumentacji. Mamy ‘tylko’ bogatą bazę z przykładami.
  • API nie jest zamrożone. Każdy update w głównej gałęzi projektu może spowodować, że coś przestanie działać w naszym projekcie.
  • Hmmm… To chyba tyle :)

Nie opisałem wszystkich frameworków WebGL, ponieważ nie wszystkich miałem czas/okazję spróbować. Pominąłem m.in.: PhiloGL, SpiderGL, GLGE, EnergizeGL, WebGLU, C3DL, J3D. Aktualną listę frameworków znaleźć można na stronie www.khronos.org/webgl/wiki/User_Contributions#Frameworks

Podsumowując do tworzenia gier najlepiej przystosowane są biblioteki CopperLicht oraz ThreeJS. Z tych dwóch wybieram ThreeJS – jest w pełni otwarta i darmowa, jest bardzo dynamicznie rozwijana przez wielu programistów i już teraz zawiera dużo przydatnych narzędzi. Trochę gorzej wygląda tutaj kwestia dokumentacji, ale w zamian Three.js udostępnia wiele ciekawych przykładów.

autor: RecRoot

One Comment

  1. [...] Polish readers (or those who can put up with Google Translate), 3dgames.pl have put together a comparison of four WebGL frameworks: SceneJS, Three.js, X3DOM and Copperlicht. Posted in Links, Roundups | « Server upgrade [...]

Comment

Copyright © 2012 3dgames - Kolejny blog oparty na WordPressie.
Website powered by WordPress and Emescale wordpress theme designed by TopTut.com & TopWPThemes.com.
Visit WebHostingFan.com for the latest news on web hosting and cms review.