Propojení Javy a OpenGL

GL4Java

GL4Java je jedna ze starších vazeb Javy a OpenGL. Poslední verze byla vydána v prosinci 2001. Ve své době patřila k nejpopulárnějším, ale byla vytlačena modernějším JOGL.

Podporuje OpenGL verze 1.3 a GLU verze 1.2. Je možné ji použít ve spojení s knihovnami AWT a Swing. OpenGL funkce jsou volány přes Java Native Interface, proto je výkon aplikace limitován rychlostí hostitelského systému.

Vychází z původního OpenGL, které známe z C. V rámci Javy musí být samozřejmě objektový, ale stavba GL4Java je strukturální. Pro programátory OpenGL v C nebude velkým problémem naučit se v GL4Java.

GL4Java je open source projekt, který je distribuován pod všeobecnou veřejnou licencí GNU.

Lightweight Java Game Library (LWJGL)

Lightweight Java Game Library je řešení, které je určené pro profesionální i amatérské programátory. Umožňuje programovat kvalitní komerční hry v Javě. LWJGL poskytuje vývojářům přístup k výkonným multiplatformním knihovnám pro OpenGL a OpenAL, které umožňují vytvářet 3D hry spolu s 3D zvukem. LWJGL navíc podporuje game pady, volanty, joysticky a další herní zařízení. Používání LWJGL automaticky neznamená snadné psaní 3D her v Javě. Jeho hlavním účelem je zpřístupnit vývojářům všechny potřebné prostředky pro vývoj.

Začátkem ledna 2007 vyšla po několika letech finální stabilní verze 1.0. Byla vytvořena s důrazem na výkon, jednoduchost, přenositelnost, bezpečnost a robustnost. Autoři LWJGL předpokládají použití na rozmanitých platformách – od telefonů, přes běžné počítače až po velké renderovací servery.

LWJGL se drží osvědčeného návrhu. OpenGL funkce z C jsou mapovány do Javy stejným způsobem jako v JOGL. LWJGL je velice podobný JOGL, ale na rozdíl od něj neumís»uje canvas na swing komponentu, ale vytváří vlastní okno.

Na internetu je možné najít NeHe tutoriály, které byly portovány také do LWJGL a ke stažení je několik her, které jsou napsány v Javě a LWJGL. Některé z nich jsou pouze trial verze a prodávají se za poměrně vysoké ceny.

Java OpenGL (JOGL)

Java OpenGL je jedna z nejnovějších vazeb Javy na OpenGL, kterou propaguje skupina Game Technologies Group od firmy Sun. Nabízí podobné možnosti jako LWJGL, ale liší se v tom, že JOGL je integrován do knihoven AWT a Swing.

Aplikační rozhraní JOGL se stane referenční vazbou Javy na OpenGL vyvíjené jako součást specifikačního procesu JSR 231 společností Sun. Z JSR 231 se tak stane oficiální vazba Javy na OpenGL.

JOGL přistupuje na funkce OpenGL z jazyka C pomocí volání Java Native Interface. Autoři se nesnažili přepracovat celé rozhraní do objektově orientovaného. Ve skutečnosti je velká část zdrojového kódu JOGL automaticky vygenerována z hlavičkových souborů OpenGL jazyka C pomocí nástroje Gluegen.

Tento návrh má své výhody i nevýhody. Nevýhodou je, že struktura metod, které souvisejí s JOGL je jiná, než všech ostatních metod v aplikaci. Na druhou stranu, je jednodušší na naučení pro toho, kdo zná OpenGL z jazyka C. Také je jednodušší pro autory JOGL, protože není nutné vymýšlet novou strukturu a využívají již zaběhnutý a léty ověřený soubor metod.

Java 3D

Java 3D není jen obyčejná vazba mezi Javou a OpenGL, ale celá sada různých podpůrných tříd, které by si programátor ve výše uvedených způsobech použití OpenGL v Javě musel sám naprogramovat. Java 3D má vlastně velice podobnou myšlenku jako DirectX.

Obsahuje metody pro načítání obrázků, práci se zvukem a sprity. Při vývoji složitějších aplikací je možné využít integrovaných metod pro načítání a práci s modely nebo metody pro různé způsoby komunikace po síti.

Při využití knihovny Java 3D si programátor na Windows dokonce může vybrat, jestli chce použít OpenGL nebo DirectX.