Istnieje grupa engine’ów niskiego poziomu, czyli będących strukturalnie blisko związanych z WebGL. Oferują one rożne narzędzia ułatwiające prace z API – biblioteki matematyczne, interfejs komunikacji z użytkownikiem, obsługę kamery. Nie modyfikują natomiast logiki działania i schematu konstrukcji aplikacji – nie opakowują WebGL w kolejna warstwę abstrakcji. Należą do nich miedzy innymi threedlibrary (link), PhiloGL, SpiderGL (link). Ostatni z nich oferuje ciekawe narzędzie do tworzenia programów cieniujących (shader) online. Kolejna grupa rozwiązań, to silniki generujące trójwymiarowy obraz, jedynie z użyciem JavaScript – bez odwoływania się do WebGL. JS3D (link) wykorzystuje na przykład odpowiednio sformatowany tekst (wielkość znaków, kolor) do symulacji trójwymiarowych obiektów. Pre3D (link) to natomiast pełnym programowym renderer, który do rysowania grafiki 3D wykorzystuje element Canvas2D.
Tag: openGL
WebGL – biblioteki niskiego poziomu
WebGL, czyli niskopoziomowe 3D w każdej przeglądarce
WebGL jest biblioteką graficzną bardzo niskiego poziomu – daje bezpośredni dostęp do wierzchołków i wykorzystuje programy cieniujące (tzw. shadery) do manipulacji geometrii (vertex shader) oraz fragmentów (fragment shader), które pisać można w języku GLSL (link). Wszystkie koncepcje z których czerpie WebGL, są już uznanymi standardami, które rozwijały się wraz z ewolucją technologii OpenGL. Oznacza to przede wszystkim, że są to rozwiązania sprawdzone i wielokrotnie wykorzystywane zarówno w wizualnie zaawansowanych grach, jak i programach graficznych. Całe stworzone oprogramowanie, może być niewielkim nakładem środków (tzn. bez potrzeby pisania całego kodu od początku) przeniesione w środowisko przeglądarki, za przykład czego może służyć chociażby konwersja gry Quake 2 (link).
OpenGL vs Direct3D – podstawy grafiki 3D, część 6
Należy pamiętać, że przedstawiony uprzednio model potoku graficznego jest abstrakcyjnym opisem sposobu działania jednostek przetwarzających grafikę, opartego na tradycyjnym podejściu. Każdego roku na rynku pojawia się nowy sprzęt, który chociaż zachowuje ogólną idee, dodaje nowe funkcje, rozszerza istniejące możliwości i wprowadza kolejne rozwiązania. Zdarza się, że karty rożnych producentów, wspomagają rożne funkcje, również, kolejne modele jednej firmy są na innym poziomie zaawansowania. Nie byłoby naturalnie możliwe, żeby każdy twórca oprogramowania, dostosowywał je do poszczególnych wersji sprzętu. Istnieje zatem bufor, w postaci interfejsu programistycznego i sterowników sprzętowych.
LWJGL – Lightweight Java Game Library
LWJGL Lightweight Java Game Library (link), chociaż posiada odniesienie do tworzenia gier w nazwie, jest również kompletnym interfejsem dla OpenGL. Korzysta z podobnej struktury kodu źródłowego jak JOGL i aplikacje mogą być w prosty sposób konwertowane między tymi dwoma engine’ami, a nawet bezpośrednio z OpenGL. Twórcy skupili się na wydajności i jako cel założyli kompatybilność z OpenGL ES (link), zatem wersją dla systemów dedykowanych – stąd wynik rezygnacja z wielowątkowości, bardzo niewielki rozmiar całej biblioteki (ok. 200kB) oraz minimalizm całego projektu.
- LWJGL – Lightweight Java Game Library: http://www.lwjgl.org/
JOGL – Java OpenGL
JOGL – czyli Java OpenGL (link) – jest projektem rozwijanym pod opieką Sun Microsystem i został zaproponowany jako oficjalny wzór interfejsu między Javą a OpenGL SE (link) – istnieje zatem szansa, że stanie się integralną częścią kolejnego (lub co bardziej prawdopodobne, któregoś z kolejnych) oficjalnego wydania Javy. Część kodu źródłowego JOGL zostało wygenerowane automatycznie z języka C, który jest natywny dla OpenGL, przy pomocy narzędzia GlueGen (link). Zapewnia to dużą wydajność tworzonych aplikacji, gdyż polecania przekazywane są do OpenGL w stosunku 1:1 – bez dodatkowego narzutu. Z drugiej jednak strony, tracona jest obiektowa struktura, naturalna dla programów pisanych w Javie.
- Jogamp: http://jogamp.org/
- JSR 231: Java Binding for the OpenGL API: http://jcp.org/en/jsr/detail?id=231
- Gluegen: http://jogamp.org/gluegen/www/