Dla kogo jest ta strona?
Strona ta przeznaczona jest dla każdego zainteresowanego grafiką komputerową i imagine3D. Powinna ona zainteresować wszystkich tych, którzy chcą tworzyć lub współtworzyć (tych ostatnich proszę o kontakt) prezentacje / dema i gry oparte o OpenGL. Od czytelnika wymagam jedynie podstawowego rozeznania w temacie i chwili cierpliwości na zrozumienie zamieszczonych danych.
Czym jest OpenGL?
OpenGL (od "Open Graphics Library") jest biblioteką służącą do tworzenia grafiki dwu- i trójwymiarowej w języku wysokiego poziomu. Jest to interface pomiędzy programistą wysokopoziomowym (najczęściej C) a sprzętem (w języku angielskim API - application programmer's interface), umożliwiającym efektywne wykorzystanie akceleracji sprzętowej, a jednocześnie zwalniającym z konieczności uwzględnienia specyfiki konkretnego urządzenia podczas tworzenia oprogramowania. W przeciągu siedmiu lat od wprowadzenia OpenGL stał się najszerzej stosowanym standardem w zakresie tworzenia interaktywnych aplikacji 2D i 3D. Biblioteka OpenGL dostępna obecnie jest na wielu platformach sprzętowych, w tym: Unix, Linux, Windows NT, MacOS, OS/2, a także w najpopularniejszych okienkach z serii Win32. Dzisiejsza jej wersja oparta jest w dużej mierze na bibliotece IRIS GL firmy Silicon Graphics, nad którą prace zaowocowały wieloma cennymi doświadczeniami.
Czym jest DirectX?
Microsoft DirectX jest intefacem niskiego (lub właściwie średniego) poziomu służącym do programowania wysokowydajnych gier i aplikacji multimedialnych. W skład pakietu wchodzą komponenty odpowiedzialne za:- wyświetlanie grafiki 2D(z angielskiego two-dimensional) - DirectDraw,- wyświetlanie grafiki 3D(z angielskiego three-dimensional) - Direct3D,- odtwarzanie dźwięku i muzyki - DirectSound i DirectMusic,- kontrolery gier - DirectInput,- i komunikację komputerów przez łącza.
Co można w OpenGL, a czego nie?
OpenGL daje prosty, bezpośredni dostęp do podstawowych obiektów i operacji grafiki trójwymiarowej. Pozwala operować na punktach, liniach i wielokątach, dokonywać przekształceń takich jak rzutowanie perspektywiczne, translacje o wektor, obroty i skalowania, wykonuje obliczenia związane z oświetleniem, odwzorowaniem tekstur i przesłanianiem niewidocznych powierzchni. Umożliwia posługiwanie się obiektami geometrycznymi i dwu- oraz trójwymiarowymi obrazami. O sile OpenGL stanowi fakt, że udostępnione mechanizmy są proste i ogólne, co daje praktycznie nieograniczone możliwości ich wykorzystania w konkretnych zastosowaniach. Nawet ci, którzy dopiero zaczynają interesować się grafiką, mogą osiągnąć bardzo ciekawe i realistyczne efekty. Podstawowym założeniem biblioteki OpenGL była jej prostota. W związku z tym nie posiada ona gotowych mechanizmów obsługi skomplikowanych obiektów 3D, nie udostępnia także informacji o ustawieniu obiektów na scenie. Nie da się więc w sposób automatyczny generować skomplikowanych modeli, czy osiągnąć takich efektów jak cienie lub odbicia od lustrzanych powierzchni.
Co można w DirectX?
Produkt Microsoftu oferuje efektywny dostęp do sprzętu na możliwie najniższym niezależnym od jego charakterystyki poziomie. DirectX różni się jednak zasadniczo od swojego konkurenta przede wszystkim funkcjonalnością. O ile OpenGL odpowiedzialny jest jedynie za wyświetlanie grafiki, o tyle DirectX daje dużo szersze spektrum możliwości. Za jego pośrednictwem można przejąć kontrolę na nieomal całością sprzętu dostępną w komputerze, a potrzebną przy obsłudze programów multimedialnych. Żeby nie było tak różowo DirectX został wyposażony również w bardzo wiele luk, błędów, a przede wszystkim bardzo szczegółowy, skomplikowany i niezautomatyzowany interface. Nieprzemyślana struktura stanowi duże utrudnienie w fazie programowania, co zadecydowało o relatywnej klęsce Microsoftu w starciu z Siliconem.
Co to jest imagine3D?
Z pewnością wiele osób posługiwało się programami wykorzystującymi różne narzędzia do tworzenia scen 3D, takimi jak 3D Studio Max lub LightWave 3D, wielu oglądało efekty działania podobnych aplikacji w grach Quake, Unreal, MAX Payne. imagine3D pozwala w prosty sposób konwertować i wizualizować w czasie rzeczywistym sceny 3D i towarzyszące im efekty graficzne. Pozwala również dodawać do nich dźwięk i wykorzystywać kinematykę, w tym systemy cząstek. W ciągu miesięcy pracy nad engine'em imagine3D stało się zamkniętym projektem mającym na celu stworzenie rzeczywistego engine'u do obsługi gier 3D. Miało ono zawierać klasy wyświetlające grafikę, odtwarzające dźwięk, kontrolujące kontrolery ruchu, kinematykę oraz połączenia sieciowe. Większość z tych zagadnień została zrealizowana, ale kilka nadal czeka na swoją kompilację. Jednak prace cały czas trwają, a kod źródłowy wzbogacany jest o nowe możliwości pozwalające na wykorzystanie najnowszych możliwości sprzętowych. Wciąż opracowywane są nowe wersje, które muszą jednak rygorystycznie spełniać postawione im wymagania: niezależność sprzętowa, efektywność i efektowność. imagine3D oparty jest w dużym stopniu na OpenGL - te biblioteki wspomagają tylko wyświetlanie grafiki - oraz DirectX, które wspierają wszystkie pozostałe zastosowania. Wcześniejsze doświadczenia pozwoliły mi na dobre przemyślenie konstrukcji programu, oraz wykluczenie z procesu renderingu Direct3D, jako narzędzia pełnego niekonsekwencji, niejasności i sprzyjającego popełnianiu błędów. Choć program powstał jako pierwszy mój projekt na tak dużą skalę, jego kody źródłowe zostały dopracowane jak nigdy dotąd. Przy jego budowie korzystałem z bardzo wielu opracowań, książek i witryn, które służyły nieocenioną pomocą. Dzięki temu dzisiaj zaistniał i pozwala nie tylko na prostą wizualizację, ale na stworzenie pełno wymiarowej gry osadzonej w świecie czasu i przestrzeni. Dzięki prostocie użycia i nieskomplikowanemu opisowi scen, osoba początkująca może w krótkim czasie stworzyć realny świat. Nieco bardziej doświadczeni mogą osiągnąć zaawansowane efekty oparte o mechanizmy grafiki 3D. Profesjonaliści mogą tworzyć animacje do złudzenia przypominające rzeczywistość lub zadziwiające efekty surrealistyczne. Podstawowym założeniem imagine3D nie miało być stworzenie gry. Miał być to engine zapewniający maksymalne wykorzystanie aktualnych możliwości sprzętowych i osiągnięć z zakresu algorytmiki. Daje on w związku z tym dostęp do operacji 3D, odtwarzania dźwięku, kontroli ruchu i sieci. W rezultacie powstał program, który użytkownikom udostępnia szereg użytecznych funkcji, pozwalających po przystosowaniu, na stworzenie pełnowartościowej gry.
Instalacja
Aby zainstalować imagine3D, po prostu rozpakuj zip'a lub uruchom program instalacyjny. Jeśli używasz instalatora, do twojego Menu Start zostanie dodany katalog zawierający wszystkie użyteczne skróty do programu. Po instalacji (aby uniknąć problemów) upewnij się, że posiadasz ostatnią wersję sterowników OpenGL przeznaczonych dla twojej karty graficznej. Upewnij się również, że używasz biblioteki DirectX 8.0 lub nowszej. Jeśli nie spełniasz któregoś z tych kryteriów program może nie działać prawidłowo. Należy wtedy ściągnąć odpowiednie pliki ze strony producenta sprzętu lub update z http://www.glsetup.com, albo http://www.microsoft.com/directx/. Jeśli nie wiesz, czy posiadasz DirectX, względnie nie wiesz którą wersję posiadasz spróbuj kliknąć Run (Uruchom) w Menu Start i wpisać: C:\Program Files\DirectX\Setup\DxDiag.lnkJeśli system nie odnajdzie pliku, najwyraźniej nie posiadasz sterowników DirectX. W przeciwnym wypadku będziesz w stanie odczytać szereg informacji o DirectX, w tym także numer wersji. Gdy dopełnisz już wszystkich niezbędnych czynności będziesz w stanie uruchomić imagine3D na swoim domowym komputerze.
Konfiguracja
Domyślnie imagine3D jest tak skonfigurowane, aby działało na każdym komputerze posiadającym kartę graficzną i procesor. Może się jednak zdarzyć i tak, że z jakiś względów program będzie działał niestabilnie, lub w ogóle odmówi pracy. Należy wówczas przejść do menu opcji (uruchomić program z parametrem -setup, lub wybrać odpowiedni skrót w menu start) i wypróbować różne ustawienia karty graficznej, muzycznej i innych. W razie dalszych problemów, np. z wydajnością systemu, spróbuj zmniejszyć poziom detali, wyłączyć oświetlenie lub zmniejszyć rozdzielczość, z której program korzysta. Jeżeli powyższe wskazówki nie udzielają ci wystarczających odpowiedzi, lub masz ciągle problemy z uruchomieniem programu u siebie, zajrzyj do następnego działu: Rozwiązywanie problemów
Rozwiązywanie problemów
W przypadku wykrycia błędów w oprogramowaniu, jego nieprawidłowego działania, lub kłopotów przy jego uruchomieniu zajrzyj do FAQ, na stronę domową projektu http://oktan.fm.interia.pl, lub napisz do bezpośrednio mnie (oktan@poczta.fm) dokładnie opisując błąd, domniemaną przyczynę i konfiguracje sprzętową oraz systemową. W miarę swoich możliwości postaram się ci pomóc.
Możliwości:
Dokładam wszelkich starań, żeby program działał wydajnie i wspierał coraz to nowsze technologie i sprzęt. Aktualnie do programu wkompilowałem (lub próbuje wkompilować) poniższe czynniki:- pełne wsparcie OpenGL- wsparcie rozszerzeń OpenGL- wydajny rendering- obsługa DirectInput 8.0- obsługa DirectSound 8.0- programowalna konsola- import obiektów z plików 3DS i MS3D- animacje modeli MD2- animowane tekstury w formacie AVI- obsługa plików audio w formatach WAV i MID- dynamiczne oświetlenie- wolumeryczna mgła- skrypty scen- środowiskowe mapowanie tekstur- multiteksturing- efekty soczewkowe- DynamicShading (*)- MotionBlur (*)- AntyAlising- Depth Of Field (*)- ForceFeedback (*)- Octree (binary space partitioning)(*)- DirectPlay (*)- ElectroBolt (*)- ParticleSystem- lustra (*)- efekty pogodowe (*)- import: Windows or OS/2 Bitmap file (*.bmp), Dr. Halo (*.cut), RAW (*.raw), RGB (*.rgb), Windows Icon (*.ico), JPEG Network Graphics (*.jng), Commodore 64 Koala Files (*.koa), Amiga IFF (*.iff; *.lbm), Independent JPEG Group (*.jpg; *.jpeg), Multiple Network Graphic (*.mng), Portable Bitmap (*.pbm), Kodak PhotoCD (*.pcd), PCX Bitmap Format (*.pcx), Portable Graymap (*.pgm), Portable Network Graphic (*.png), Portable Pixelmap (*.ppm), Sun Rasterfile (*.ras), Targa files (*.tga), Tagged Image File Format (*.tif), Wireless Bitmap (*.wbmp), Photoshop (*.psd)* - w przygotowaniu
Wymagania:
1. System operacyjny Microsoft Windows 95 OSR 2, Windows 98, WindowsME, Windows NT, Windows 2000, WindwosXP z obecnymi bibliotekami OpenGL.
2. Procesor typu Intel Pentium 133 MHz lub szybszy. Ilość klatek na sekundę liniowo zależy od rozmiarów i komplikacji sceny, efektów graficznych oraz oświetlenia.
3. Pamięć 32 MB RAM - zalecane 64 MB i więcej.
4. Karta graficzna lub akcelerator obsługujący standard OpenGL (zalecam produkty NVIDII) posiadający 8 lub więcej MB RAMu.
5. Karta dźwiękowa obsługująca odtwarzanie dźwięku, najlepiej SB Live! lub nowsza.
6. Klawiatura i mysz z oczywistych powodów.
X-genius