Tag: java

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.

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.

Stratra 3D

Strata (link) to komercyjny engine, który również nie wymaga wsparcia dla OpenGL, aby wyświetlać trójwymiarowe treści. Strata Live 3D (link) jest programem, który pozwala na wizualne edycję, a także interaktywną animację i prostą publikację apletów do sieci, dzięki możliwości umieszczenia ich na serwerze producenta, a następnie osadzenia na stronie przy pomocy krótkiego kodu HTML. Aplikacja posiada funkcję optymalizacji i kompresji wyświetlanego modelu, a pozostałe oprogramowanie z rodziny Strata 3D oferuje bogaty wachlarz narzędzi, na przykład automatyczną generację trójwymiarowego, teksturowanego obiektu na podstawie serii zdjęć.

3DzzD

Kolejnym silnikiem jest rozwijany od kilku lat 3DzzD (link). Do działania wymaga jedynie Javy w wersji 1.1 i umożliwia generowanie trójwymiarowej, interaktywnej grafiki bez pomocy OpenGL (chociaż taka opcja jest również możliwa, przy pomocy biblioteki JOGL). 3DzzD jest projektem rozwijanym przez jedną osobę i tym prawdopodobnie można wytłumaczyć fakt, że jest kiepsko udokumentowany, a jego strona domowa nie ułatwia rozpoczęcia korzystania z oprogramowania. Okazuje się jednak, że po pokonaniu początkowych barier, jest to rozwiązanie godne odrobiny uwagi, chociażby ze względu na ciekawa aplikacje on-line, która umożliwia załadowanie modelu 3D, tekstur i wygenerowanie prostego apletu pozwalającego na wyświetlenie obiektu.

jReality

jReality (link) jest narzędziem do trójwymiarowej wizualizacji (a także sonifikacji, gdyż jReality oferuje wsparcie dla obsługi dźwięku), które powstało na wydziale matematyki Technicznego Uniwersytetu w Berlinie. Projekt ten przeznaczony jest do zastosowań naukowych – w prosty sposób pozwala miedzy innymi na wyświetlenie oraz manipulacje w przestrzeni trójwymiarowej obiektów opisanych funkcjami matematycznymi. Poza ta specjalizacja, API nadaje się do wielorakich zastosowań i jest solidnym, wciąż rozwijanym silnikiem, do którego twórcy oferują obszerny zestaw tutoriali.

Aviatrix 3D

Aviatrix3D (link) stworzony został z myślą o wizualizacjach i symulatorach (obsługa niestandardowych wyświetlaczy). Minimalistyczne API, dające nieograniczony dostęp do potoku renderującego OpenGL. Jak piszą twórcy na stronie domowej produktu „Dajemy Ci sznur, stołek i wskażemy drzewo. (…) Jeśli na prawdę chcesz wszystko spaprać, nie będziemy Cie powstrzymywać” (tłumaczenie własne). Zarazem jednak, jeśli znasz się na rzeczy i chcesz wykorzystać te wiedzę, Aviatrix3D jest tak zaprojektowany, żebyś mógł całkowicie kontrolować proces renderowania, a nawet korzystać bezpośrednio z komend OpenGL.

Ardor 3D

Z jMonkey wywodzi się inny popularny engine Ardor3D (link). Odłączenie się od jMonkey i powołanie do życia niezależnego projektu podyktowane było chęcią stworzenia bardziej profesjonalnie zorientowanego (tzn. nastawionego nie tylko na tworzenie gier) API. W internecie trudno znaleźć poradniki omawiające różnorodne funkcje zaimplementowane w Ardor3D, jednak twórcy udostępniają na stronie domowej projektu wiele przykładów, co na pewno przypadnie do gustu programistom lubiącym uczyć się poprzez analizę kodu źródłowego. Najnowsza wersja umożliwia tworzenie przy pomocy Ardor3D oprogramowania na mobilną platformę Android.

jMonkey Engine

Jednym z najpopularniejszych rozwiązań służących do tworzenia oprogramowania w języku Java, wykorzystującego wysokiej jakości trójwymiarowa grafikę, jest jMonkey. Jest to właściwie cały pakiet (SDK – Software Development Kit), ukierunkowany na tworzenia gier silnik, oferowany pod nazwa jMonkey Engine (link), do którego istnieje zintegrowane środowisko programistyczne (IDE – Integrated Development Environment) wraz z wizualnym edytorem jMonkey Platform (link). Całość udostępniona jest na licencji New BSD (link), jest to zatem oprogramowanie otwarte.

Czytaj dalej »

Xith 3D

Xith3D (link) jest interfejsem bardzo podobnym do Java 3D, jednak znacznie wydajniejszym. Przyspieszenie osiągnięto prawdopodobnie dzięki rezygnacji z wielowątkowości i skupieniu się na optymalizacji wyświetlania w jednym wątku. Istotna zaleta tego API jest fakt, że pozwala na ingerencje w proces renderowania obrazu. Xith3D, podobnie jak Java 3D obecnie straciły na dynamice rozwoju i wydaja się być w stagnacji, nie mniej są wciąż ciekawa alternatywa, a ich bliskie pokrewieństwo sprawia, że niektóre przykłady i tutoriale działają na obu platformach.

Java 3D

Historycznie pierwszym i najbliżej związanym z Java interfejsem programistycznym jest Java 3D. Projekt zapoczątkowany był przez Sun i innych liderów branży programistycznej, a jego pierwsza wersja została udostępniona publiczności w 1998 roku. Na początku roku 2000, rozwój Java 3D został zaniechany na rzecz wciąż rozwijanego projektu JavaFX, którego głównym przeznaczeniem są tzw. bogate aplikacje internetowe (RIA – Rich Internet Applications). W 2008 roku producent udostępnia kod źródłowy biblioteki na licencji GPL (link) i od tego momentu projekt rozwijany jest przez społeczność skupiona wokół Sun oraz Javy.

Czytaj dalej »

Java, czyli jak wirtualna maszyna radzi sobie z Web3D

Java nie jest przeznaczona wyłącznie do zastosowań internetowych – z powodzeniem można w tym języku tworzyć aplikacje lokalne. Jednak ze względu na swoja strukturę oraz założenia które przyświecały jej twórcom, doskonale nadaje się do wykorzystania w sieci. Kod źródłowy programów napisanych w Javie jest kompilowany do uniwersalnego formatu – poleceń dla maszyny wirtualnej. Tak skompilowany program jest następnie wykonywany przez interpreter Javy. Dopiero interpreter przekłada polecenia maszyny wirtualnej na instrukcje niskiego poziomu, charakterystyczne dla danej platformy, na której uruchamiana jest aplikacja. Główną zaletą takiego rozwiązania jest fakt, że raz napisany kod jest przenośny. Program, może być uruchamiany na dowolnej platformie, pod warunkiem, że istnieje dla niej interpreter Javy. Założenie takie jest szczególnie istotne, jeśli wziąć pod uwagę aplikacje osadzone na stronach internetowych, które mogą być przecież oglądane pod różnymi systemami operacyjnymi, na sprzęcie o rozmaitych architekturach.

Czytaj dalej »