WYKORZYSTANIE SILNIKA GRAFICZNEGO 3D OGRE W ŚRODOWISKU VISUAL STUDIO NET 2003



Podobne dokumenty
Król Łukasz Nr albumu:

Zastosowania Robotów Mobilnych

SPOSOBY POMIARU KĄTÓW W PROGRAMIE AutoCAD

Programowanie w C. dr inż. Stanisław Wszelak

JavaFX. Technologie Biznesu Elektronicznego. Wydział Informatyki i Zarządzania Politechnika Wrocławska

GRY KOMPUTEROWE 3D OpenGL DirectX Ogre3D Crystal Space ClanLib Irrlicht SDL Ardor3D jmonkey Engine GRY KOMPUTEROWE 2D ORX Troll2D

Gry Komputerowe Laboratorium 1. Zajęcia organizacyjne Animacja z uwzględnieniem czasu. mgr inż. Michał Chwesiuk 1/22. Szczecin,

REFERAT PRACY DYPLOMOWEJ

Specjalność Systemy Aplikacyjne Grafiki i Multimediów. Wydział Informatyki, Politechnika Białostocka

Język UML w modelowaniu systemów informatycznych

Wprowadzenie do QT OpenGL

Wprowadzenie do biblioteki klas C++

Dodatkowo planowane jest przeprowadzenie oceny algorytmów w praktycznym wykorzystaniu przez kilku niezależnych użytkowników ukończonej aplikacji.

Karty graficzne możemy podzielić na:

Dotacje na innowacje. Inwestujemy w waszą przyszłość.

System zarządzający grami programistycznymi Meridius

Projektowanie aplikacji graficznych. dr inż. Jarosław Zubrzycki

Informatyka I stopień (I stopień / II stopień) Ogólnoakademicki (ogólno akademicki / praktyczny)

Wstęp do Informatyki. Klasyfikacja oprogramowania

WYKORZYSTANIE PLATFORMY FireMonkey DO AUTOMATYZACJI ZADAŃ GRAFIKI W PROGRAMIE AutoCAD

Środowiska i platformy programistyczne

PRZYJĘTE ZASADY GRY...3 ZAŁOŻENIA PROJEKTU...4 CZYM JEST I DLACZEGO QT?...5 DIAGRAM KLAS...7 DIAGRAM GRY SINGLE PLAYER...8 DIAGRAM MULTIPLAYERA...

D O K U M E N T A C J A

METODY URUCHAMIANIA PROGRAMÓW JĘZYKA AutoLISP W ŚRODOWISKU AutoCAD

Symulacja samochodu z kamerą stereowizyjną. Krzysztof Sykuła 15 czerwca 2007

Plan wykładu. Akcelerator 3D Potok graficzny

Pisząc okienkowy program w Matlabie wykorzystujemy gotowe obiekty graficzne, lub możemy tworzyć własne obiekty dziedzicząc już zdefiniowane.

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych.

Programowanie gier 3D w HTML5. Andrzej P.Urbański Politechnika Poznańska

Narzędzia uruchomieniowe dla systemów Embedded firmy Total Phase

System komputerowy. Sprzęt. System komputerowy. Oprogramowanie

APLIKACJA KLIENT-SERWER DO SPORZĄDZANIA I PRZEPROWADZANIA TESTÓW ONLINE - METODYKA ROZWOJU I OPISU APLIKACJI Z WYKORZYSTANIEM UML

GUI - projektowanie interfejsów

PRZEWODNIK PO PRZEDMIOCIE

DROGA ROZWOJU OD PROJEKTOWANIA 2D DO 3D Z WYKORZYSTANIEM SYSTEMÓW CAD NA POTRZEBY PRZEMYSŁU SAMOCHODOWEGO

Dokument Detaliczny Projektu

INFORMATYKA TECHNICZNA Badanie możliwości wykorzystania języka AutoLISP i środowiska VisualLISP w systemie CAx

Rzeczywistość rozszerzona: czujniki do akwizycji obrazów RGB-D. Autor: Olga Głogowska AiR II

ABIX Cyfrowa edukacja z oprogramowaniem Open Source

Implementacja aplikacji sieciowych z wykorzystaniem środowiska Qt

Tworzenie oprogramowania

Zastosowanie Informatyki w Medycynie

Problemy programowania gier. mgr Mateusz Rynk

Google Earth. Co to jest Google Earth? Co to jest KML? Skąd można pobrać Google Earth?

Wykład Ćwiczenia Laboratorium Projekt Seminarium

DESIGNER APPLICATION. powered by

Szczegółowy opis przedmiotu zamówienia

Projektowanie gier komputerowych. dr inż. Mariusz Szwoch

Podsystem graficzny. W skład podsystemu graficznego wchodzą: karta graficzna monitor

Załącznik KARTA PRZEDMIOTU. KARTA PRZEDMIOTU Wydział Automatyki, Elektroniki i Informatyki, Rok akademicki: 2009/2010

Tworzenie aplikacji Web Alicja Zwiewka. Page 1

Spadające jabłuszka. licencja CC-BY-SA Uznanie autorstwa Na tych samych warunkach 3.0 Polska. Strona 51

Informatyka I stopień (I stopień / II stopień) Ogólnoakademicki (ogólno akademicki / praktyczny)

PRZEWODNIK PO PRZEDMIOCIE

Compact Open Remote Nao

INFORMATYKA TECHNICZNA Metody wprowadzania obiektów w programie AutoCAD za pomocą języka AutoLISP

WYKORZYSTANIE PLATFORMY FireMonkey W PROCESIE URUCHAMIANIA I TESTOWANIA UKŁADÓW MIKROPROCESOROWYCH

MULTIMEDIA W SYSTEMIE RECEPTUS

Języki i paradygmaty programowania - 1

1.Wstęp. 2.Generowanie systemu w EDK

Języki i paradygmaty programowania doc. dr inż. Tadeusz Jeleniewski

Integracja systemu CAD/CAM Catia z bazą danych uchwytów obróbkowych MS Access za pomocą interfejsu API

Organizacja zajęć BAZY DANYCH II WYKŁAD 1. Plan wykładu. SZBD Oracle

System komputerowy. System komputerowy

ActiveXperts SMS Messaging Server

Unreal Engine w 24 godziny : nauka tworzenia gier / Aram Cookson, Ryan DowlingSoka, Clinton Crumpler. Gliwice, cop Spis treści.

Aplikacja webowa do zarządzania maszynami wirtualnymi

PROGRAM STUDIÓW WYŻSZYCH ROZPOCZYNAJĄCYCH SIĘ W ROKU AKADEMICKIM 2010/2011. Wydział Matematyczno-Fizyczno-Techniczny

Czym jest wykrywanie kolizji. Elementarne metody detekcji kolizji. Trochę praktyki: Jak przygotować Visual Studio 2010 do pracy z XNA pod Windows

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Usługi analityczne budowa kostki analitycznej Część pierwsza.

SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX)

Programowanie obiektowe

Grafika komputerowa i wizualizacja

Grafika Komputerowa Wykład 4. Synteza grafiki 3D. mgr inż. Michał Chwesiuk 1/30

PROGRAM MICROSOFT DEVELOPER NETWORK ACADEMIC ALLIANCE MSDN AA

INFORMATYKA TECHNICZNA Badanie możliwości wykorzystania interfejsu automatyzacji OLE w systemie CAx

To sposób w jaki użytkownik wchodzi w interakcje z systemem. Środowisko graficzne używa kombinacji graficznych elementów(przyciski, okna, menu) i

Struktury systemów operacyjnych

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

Język JAVA podstawy. wykład 1, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

egroupware czy phpgroupware jest też mniej stabilny.

Uniwersytet Mikołaja Kopernika. Wydział Matematyki i Informatyki Wydział Fizyki, Astronomii i Informatyki Stosowanej

Utworzenie pliku. Dowiesz się:

Rys. 1. Główne okno programu QT Creator. Na rysunku 2 oznaczone zostały cztery przyciski, odpowiadają kolejno następującym funkcjom:

Koło zainteresowań Teleinformatyk XXI wieku

Java w 21 dni / Rogers Cadenhead. Gliwice, cop Spis treści. O autorze 11. Wprowadzenie 13 TYDZIEŃ I JĘZYK JAVA

PROGRAM STUDIÓW WYŻSZYCH ROZPOCZYNAJĄCYCH SIĘ W ROKU AKADEMICKIM 2010/2011. Wydział Matematyczno-Fizyczno-Techniczny

Tytuł projektu. WYŻSZA SZKOŁA INFORMATYKI I ZARZĄDZANIA z siedzibą w Rzeszowie WYDZIAŁ INFORMATYKI STOSOWANEJ

Biorąc udział w projekcie, możesz wybrać jedną z 8 bezpłatnych ścieżek egzaminacyjnych:

Wprowadzenie do języka Python

Spis treści. I. Skuteczne. Od autora... Obliczenia inżynierskie i naukowe... Ostrzeżenia...XVII

WPF 4.5 : księga eksperta / Adam Nathan. Gliwice, cop Spis treści

Numer i nazwa obszaru: Temat szkolenia:

Cechy systemu X Window: otwartość niezależność od producentów i od sprzętu, dostępny kod źródłowy; architektura klient-serwer;

Informatyka I stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny)


Dokument Detaliczny Projektu

Zdalne monitorowanie i zarządzanie urządzeniami sieciowymi

PROGRAMOWANIE DLA KAŻDEGO

Transkrypt:

Scientific Bulletin of Che lm Section of Mathematics and Computer Science No. 1/2008 WYKORZYSTANIE SILNIKA GRAFICZNEGO 3D OGRE W ŚRODOWISKU VISUAL STUDIO NET 2003 PRZEMYSŁAW DRZEWICKI Państwowa Wyższa Szkoła Zawodowa w Chełmie Streszczenie. Niniejszy artykuł dotyczy wykorzystania, budowy i funkcjonalności silnika graficznego Ogre w środowisku Visual Studio Net 2003. W pracy zostały opisane przykłady praktycznego wykorzystania biblioteki Ogre podczas realizacji aplikacji przedstawiającej realistyczny model układu słonecznego. W artykule zawarto opis funkcjonalności, budowy i sposobu integracji API silnika Ogre w środowisko.net. 1. Wprowadzenie Grafika komputerowa jest dziedziną nauki, która ze względu na duże wymagania obliczeniowe rozwijała się szczególnie intensywnie dopiero od ostatniej dekady XX w. Początkowo duży koszt systemów informatycznych do tworzenia grafiki sprawiał, że tylko duże firmy i ośrodki badawcze mogły sobie pozwolić na wykorzystanie grafiki komputerowej jako narzędzia wspierającego wizualizację danych pomiarowych, symulacji, skład komputerowy (DTP) czy też do generowania efektów specjalnych w filmach i grach. W dzisiejszych czasach pojęcie grafiki komputerowej jest znane każdemu posiadaczowi komputera - przeciętny współczesny komputer jest w stanie, korzystając ze swoich możliwości obliczeniowych, wygenerować atrakcyjnie i realistycznie wyglądającą sekwencję graficzną. Popularyzacja zagadnień graficznych sprawiła, że wraz ze zwiększeniem możliwości przeliczeniowych komputerów zwiększyło się również zapotrzebowanie na wysokiej jakości grafiki. Innowacyjne pomysły tworzenia pierwszych zintegrowanych baz graficznych przerodziły się w utworzenie profesjonalnych bibliotek oraz silników graficznych wykorzystujących technologie pozwalające na uzyskanie obrazów w najwyższej jakości. Aplikacje tekstowe i bazujące jedynie na interfejsie wiersza poleceń zostały zastąpione programami wykorzystującymi zaawansowane interfejsy graficzne, co czyni je znacznie przystępniejszymi i wydatnie skraca proces zapoznawania się z ich budową i użyciem. Proste gry komputerowe, oparte na dwuwymiarowym układzie współrzędnych, zostały zastąpione skomplikowanymi i rozbudowanymi grami wykorzystującymi API 1 zaawansowanych bibliotek graficznych, jak również silników 3D [1]. Treść artykułu była prezentowana w czasie VII Konferencji Informatyki Stosowanej 30-31 maja 2008 r.) 1 Application programming interface 39 (Chełm

40 PRZEMYSŁAW DRZEWICKI Rysunek 1 ilustruje proces udoskonalania funkcjonalności graficznych najpopularniejszych gier komputerowych - przemysł rozrywkowy jest jednym z najważniejszych kół napędowych grafiki komputerowej. Dzięki specjalizacji oraz rozwojowi technik programowania z czasem możliwe stało się oddzielenie warstwy programistycznej od warstwy wizualizacji aplikacji - pojawiły się specjalistyczne silniki graficzne, jak Ogre, Iricht czy Crystal Space, które mogą zostać wykorzystanie w najpopularniejszych środowiskach programistycznych, jak np. środowisko.net, wydatnie zwiększając ich możliwości w dziedzinie wyświetlania zaawansowanych elementów graficznych. Rysunek 1. 1) Pierwsze dwuwymiarowe gry tworzone na platformie sprzętowej Atari. 2) Najnowsze produkcje gier zalewające rynek rozrywki wirtualnej 2. Podstawowe własności silnika graficznego Ogre Silnik Ogre jest jednym z najlepiej rozwijających się produktów graficznych w klasie aplikacji wykorzystujących sprzętowe wspomaganie 3D przez wprowadzenie interfejsu ukrywającego wywołania bibliotek systemowych typu Direct3D czy OpenGL. Ogre jest biblioteką, której powłoka programistyczna oparta jest na języku programowania C++. Ogre udostępniany jest za darmo na licencji LGPL 2 [2]. Silnika graficznego Ogre nie można traktować jako pełnego silnika gry - oznacza to, że nie zostały w nim zawarte wyspecjalizowane możliwości związane ze światem fizyki, m.in. kolizje między obiektami. Silnik graficzny Ogre skupia się przede wszystkim na generowaniu obrazów w czasie rzeczywistym, zaś brakujące funkcjonalności, związane z implementacją konkretnych zjawisk fizycznych, można uzupełniać, integrując Ogre z innymi bibliotekami graficznymi, takimi jak: Newton, ODE czy również Bullet. Ogre udostępniany jest na stronie głównej projektu w dwóch formach, jako plik SDK 3, czyli przekompilowane źródło silnika, lub jako pliki źródłowe do samodzielnej kompilacji (przeznaczone głównie dla użytkowników systemów operacyjnych Linux i Unix). Silnik graficzny jest głównie kompatybilny z kompilatorem firmy Microsoft Visual Studio Net C++ w wersji 2003 lub 2005, zaś najnowsza odsłona Ogre to wersja Eihort 1.4.7 wyłącznie kompatybilna z Microsoft 2 Lesser General Public License 3 Software Development Kit

WYKORZYSTANIE SILNIKA GRAFICZNEGO 3D OGRE... 41 Visual Studio Net C++ 2005. Praktyczne wykorzystanie silnika w środowisku programistycznym polega na utworzeniu modułu urządzenia generującego grafikę komputerową w czasie rzeczywistym. 2.1. Budowa silnika graficznego Ogre. Silnik graficzny Ogre oparty jest na hierarchicznej budowie składników engine 3D. Jest elastycznym silnikiem graficznym wykorzystującym wiele managerów w jednej scenie. Budowa składników Ogre składa się z wtyczkowej hierarchii plików, czyli każdy plik jest dołączany w ustalonej hierarchii ważności. Przykładem takiej hierarchii może być zastosowanie węzłów sceny obiektów. Rysunek 2 przedstawia hierarchiczną budowę węzłów. Każdy węzeł musi posiadać swojego rodzica oraz może mieć wiele węzłów scen podległych. Jedynie węzeł sceny root, czyli tak zwany rdzeń, nie musi posiadać rodzica, gdyż jest konstruktorem, który pobiera nazwy strumieni plików i plugi-nów potrzebnych do uruchomienia aplikacji. Rysunek 2. Hierarchiczna budowa węzłów sceny Wszystkie pliki wtyczkowe posiadają własne rozszerzenie umożliwiające silnikowi Ogre identyfikację pliku. Strumienie, ścieżki do plików wykorzystywanych przy budowie aplikacji, znajdują się w pliku o nazwie resources z rozszerzeniem *.cfg. Pliki zawierające nazwę tekstury wykorzystywanej w aplikacji do danego obiektu znajdują się w plikach z rozszerzeniami *.material. Analogicznie jest z plikami zawierającymi budowę systemu cząstek. Jak widać, każdy plik w silniku graficznym Ogre ma swoje miejsce i ważność w budowie oraz funkcjonalności silnika. Taka hierarchiczna budowa Ogre daje duże możliwości przy tworzeniu aplikacji i ułatwia tworzenie oraz dostęp do potrzebnych plików. 2.2. Możliwości silnika. Ogre, jako elastyczny engine 3D, nie ogranicza się jedynie do własnej budowy i funkcjonalności, lecz umożliwia użytkownikowi rozszerzanie go o różne wtyczki (ang. Pluginy) lub dodatkowe biblioteki. Łącząc Ogre z różnymi dodatkowymi bibliotekami muzycznymi lub graficznymi można osiągnąć bardzo ciekawe i zaskakujące efekty (rysunek 3). Jak widać, zaprezentowane możliwości graficzne silnika Ogre na rysunku 3 są bardzo duże. Jego integralność z innymi bibliotekami jak również językami skryptowymi jest nieograniczona. Coraz częściej można napotkać się z aplikacjami lub z różnymi

42 PRZEMYSŁAW DRZEWICKI grami bazującymi na API tego właśnie silnika. Zainteresowanie takimi produktami graficznymi w dzisiejszych czasach bardzo wzrosło. Jego struktura budowy i elastyczność ułatwia prace wielu programistom jak również grafikom opierającym swoje projekty na tym właśnie silniku. Jego zaawansowanie techniczne przewyższa większość produktów o podobnej marce i zastosowaniu. Rysunek 3. Nimble - windwardmark Duża zaletą Ogre jest to, iż każdy użytkownik wykorzystujący API tego silnika ma wpływ na rozwój dalszych jego wersji. Użytkownicy mogą tworzyć, pisać nowe skrypty, funkcje umożliwiające i usprawniające prace z silnikiem. Można powiedzieć, że każdy, kto korzysta z silnika, ma wpływ na kształt oraz budowę nowszych wersji. Cały silnik może stanowić dobry fundament pod budowę zaawansowanych gier lub aplikacji. Można powiedzieć, że jego możliwości są nieograniczone; jedynym ogranicznikiem podczas tworzenia aplikacji może być własna wyobraźnia programisty. 2.3. Zalety silnika. Jedną z głównych zalet silnika graficznego Ogre jest jego możliwość obsługi znanych i często wykorzystywanych bibliotek graficznych takich jak DirectX w wersji 7, 9 oraz starszej biblioteki graficznej OpenGl 4 (rysunek 4). Rysunek 4 DirectX jest produktem firmy Microsoft udostępnianym na platformę systemową Windows oraz konsolę Xbox. Obecnie dostępną wersją DirectX jest wersja 9.0 c. Kolejną 4 Open Graphics Library

WYKORZYSTANIE SILNIKA GRAFICZNEGO 3D OGRE... 43 wersją wprowadzaną na rynek przez Microsoft jest DirectX 10, który został udostępniony wraz z premierą systemu operacyjnego Microsoft Windows Vista [3]. Silnik graficzny Ogre umożliwia integralność z najnowszą wersją DirectaX. Mimo że są to dopiero testowe wersje wtyczek do silnika, są one już dostępne. Silnik graficzny obsługuje także bibliotekę graficzną OpenGL. Jest to biblioteka wprowadzona na rynek grafiki komputerowej poprzez firmę ARB. Została ona udostępniona na platformy systemowe Windows, Linux oraz Mac OS. OpenGl jest to biblioteka graficzna zajmująca się przede wszystkim specyfikacją uniwersalnego API do generowania grafiki. Biblioteka graficzna OpenGl zawiera 250 funkcji podstawowych wywołań, umożliwiających generowanie złożonych trójwymiarowych scen [4]. Kolejną ważną zaletą silnika graficznego Ogre jest jego wieloplatformowość. Engine Ogre jest dostępny na różne platformy systemowe, takie jak Windows firmy Microsoft, Linux oraz Mac OS firmy Apple. Ta zaleta silnika graficznego umożliwia użytkownikom tworzenie i kompilowanie aplikacje na różnych systemach operacyjnych. Dużą zaletą silnika graficznego Ogre jest jego elastyczność w stosunku do innych bibliotek graficznych, muzycznych czy również bibliotek generujących zachowania fizyki w trójwymiarowych scenach. Ogre, jako elastyczny silnik graficzny, nie ogranicza się do własnej budowy i funkcjonalności, lecz daje możliwość użytkownikom do linkowania i łączenia go z różnymi innymi bibliotekami, jak również z różnymi językami skryptowymi. Umożliwia pisanie własnych komponentów ułatwiających działanie oraz usprawniających pracę wraz z silnikiem. Tak jak większość produktów wykorzystujących wsparcie sprzętowe 3D, silnik graficzny Ogre posiada dostęp oraz wbudowane funkcje obsługi efektów specjalnych, takich jak system cząstek, bump mapping, czy postfiltry obrazu. Dużą zaletą silnika jest to, iż posiada wbudowane przykładowe skrypty większości efektów specjalnych. Oczywiście skrypty dołączone do silnika graficznego Ogre napisane są za pomocą skryptowego języka programowania hlslhigh Level Shader Language dla obsługi biblioteki graficznej DirectX oraz glsl 5 dla biblioteki graficznej OpenGl. Przedstawione wyżej zalety silnika graficznego Ogre są jedynie przykładami i podstawowymi zaletami zauważalnymi na pierwszy rzut oka podczas pracy z silnikiem. Oczywiście engine Ogre posiada o wiele więcej zalet, które można byłoby wymieniać w nieskończoność. Tak jak każdy produkt graficzny, obok zalet posiada również wady. Jedną z głównych wad silnika graficznego Ogre jest jego niestabilność systemowa. Często zdarza się, że engine 3D wysypuje się, zasypując użytkownika różnymi błędami, dlatego też powstają nowsze wersje Ogre poprawiające jego funkcjonalność oraz stabilność jego działania. 3. Praktyczne wykorzystanie silnika 3.1. Projekt aplikacji. Rysunek 5 ilustruje aplikację modelującą przybliżony kształt układu słonecznego. Do napisania aplikacji został wykorzystany jedynie silnik graficzny Ogre w wersji 1.2.0 Dagon. Budowę programu ilustruje przedstawiony diagram funkcjonalności (rysunek 6). 5 OpenGl Shading Language

44 PRZEMYSŁAW DRZEWICKI Rysunek 5. Główne okno aplikacji Rysunek 6. Diagram hierarchi funkcjonalności Podstawowymi założeniami napisanego projektu było utworzenie przybliżonego do rzeczywistości modelu układu słonecznego oraz jednego systemu zewnętrznego korzystającego z aplikacji, którym jest użytkownik mający łatwy dostęp do szeregu funkcji prostego GUI. Wszystkie podstawowe możliwe działania użytkownika ilustruje diagram przypadków użycia (rysunek 7). Kolejnym z założeń aplikacji było utworzenie prostego programu użytkowego przedstawiającego możliwości i funkcjonalność działania silnika graficznego Ogre. Wszystkie pliki graficzne, niezbędne do napisania projektu, zostały przygotowane wcześniej przy pomocy programu Adobe Photoshop 7.0. Modele planet zostały utworzone w programie 3ds max 6. Zdjęcia planet zostały znalezione w Internecie na stronach poświęconych astronomii. Po uruchomieniu aplikacji użytkownik będzie miał dostęp do prostego menu. Menu utworzono poprzez wykorzystanie obszarów plików graficznych reprezentujących poszczególne przyciski menu. Działanie poszczególnych przycisków aplikacji polega na tym samym. Zbliżając się kursorem myszki do górnej krawędzi okna aplikacji, menu staje się coraz bardziej widoczne. Kursor myszki aplikacji znajdujący się na danym przycisku podświetla go i uaktywnia. Dopiero po nacisnięciu lewego przycisku myszki wywoływana jest odpowiednia akcja przypisana do danego przycisku.

WYKORZYSTANIE SILNIKA GRAFICZNEGO 3D OGRE... 45 Rysunek 7. Diagram przypadków użycia Wszystkie pliki graficzne wykorzystane w aplikacji reprezentują pewien obszar na dwuwymiarowej powierzchni generowanej sceny oraz są ograniczone poprzez proste X1, X2, Y1, Y2 [5]. Obszar, który będzie reprezentował ograniczenia na osi OX to: X1 < XKursor < X2, natomiast obszar reprezentujący ograniczenia dla osi OY to: Y1 < YKursor < Y2. Wykorzystując twierdzenie o sumie zbiorów, mówiące o tym, że alternatywny obszar jest częścią wspólną [6]: A B = {x : x A x B} można na tej podstawie wyznaczyć obszar danego przycisku: X1 < XKursor < X2 Y1 < YKursor < Y2. Oba ograniczenia X1 i Y1 będą reprezentowały położenie górnego lewego rogu bitmapy. X2 i Y2 natomiast będą reprezentować położenie dolnego prawego rogu bitmapy, zawierającej wybrany plik graficzny. Rysunek 8. Ograniczenia obszaru działania menu Cała aplikacja została zaprojektowana tak, aby w jak najbardziej możliwy sposób oddać stosunek wielkości, odległości od Słońca i okres obiegu poszczególnych planet.

46 PRZEMYSŁAW DRZEWICKI Planetą, do której zostały dostosowane inne wielkości poszczególnych planet, jest Ziemia. Każda planeta została przygotowana w oparciu o wartości z tabeli 1 średnicy planet. Zależność odległości planet od Słońca przygotowano tak, aby dane wartości z tabeli 1 były równe pikselom długości od środka sceny. Tabela 1: Dane poszczególnych planet Nazwa planety Okres obiegu Odl. od Słońca Średnica (km) Merkury 88 dni 0.39 57.91 Wenus 224,7 dni 0.72 108.21 Ziemia 365 dni 1.00 149.60 Mars 638 dni 1.52 227.95 Jowisz 11 lat 5.20 778.40 Saturn 29 lat 9.52 1423.62 Uran 84 lat 19.16 2866.60 Neptun 1644 lat 30.07 4498.60 Animacja każdej planety została zeskalowana do obrotu Ziemi wokół Słońca. Ruch orbitalny planety Ziemi przygotowano poprzez podzielenie danej wartości obiegu planety przez stałą wartość 100 i pomnożenie tej wartości poprzez jeden stopień. Cała wyliczona wartość została przekazana do funkcji rotacji danego węzła sceny przywiązanego do odpowiedniej planety. 3.2. Wykorzystane funkcjonalności Ogre. Cała aplikacja opiera się jedynie na kilkunastu podstawowych funkcjach engine 3d. Podstawową funkcją silnika, na której bazuje cała aplikacja, jest funkcja createscene pochodząca z klasy ExampleAplicattion, posiadająca podstawowe moduły generujące scenę i tworzące główną pętlę aplikacji. CreateScene jest główną funkcją tworzenia jakichkolwiek obiektów w scenie, to właśnie w tej funkcji zostały utworzone wszystkie obiekty planet. Do utworzenia efektów specjalnych aplikacji, takich jak światło Słońca, wykorzystano podstawowy skrypt systemu cząstek. Na początku został przygotowany plik ze skryptem, z którego wczytano wszystkie wartości do utworzenia efektu. Główna część systemu cząstek, czyli tak zwany affector, został przywiązany do odpowiedniego węzła sceny Słońca, aby podczas animacji cały efekt poruszał się wraz ze Słońcem. Rysunek 9. Działanie systemu cząstek

WYKORZYSTANIE SILNIKA GRAFICZNEGO 3D OGRE... 47 Rysunek 9 przedstawia działanie danego skryptu w scenie. Wszystkie przyciski menu utworzono na podstawie wykorzystania funkcji silnika graficznego Ogre tzw. overlaów. Panel z angielskiego Overlay jest to plik graficzny reprezentujący odpowiedni dwuwymiarowy obszar w oknie sceny. Wszystkie panele generowane są w dwuwymiarowym układzie kartezjańskim reprezentowanym tylko poprzez dwa wymiary. Mówi to o tym, że dane panele nie mogą być przesuwane w głąb sceny, czyli nie posiadają trzeciego wymiaru. Nazwy planet zostały utworzone na podstawie wyświetlanych bilbordów. Bilbordy, w odróżnieniu od paneli(overlaów), reprezentowane są poprzez trójwymiarowy układ współrzędnych. Różnica między bilbordami a panelami jest taka, iż bilbordy mogą być przesuwane w głąb sceny. Działanie bilbordów obrazuje rysunek 10. Każdy bilbord, który zostanie utworzony w scenie, zawsze jest zwrócony w stronę kamery. Zazwyczaj ta zależność oznacza, iż każdy renderowany bilbord będzie obracał się w zależności od kierunku punktu widzenia kamery. Rysunek 10. Zależność działania bilbordów względem kamery 4. Podsumowanie Silnik graficzny Ogre jest dość znanym produktem w świecie grafiki trójwymiarowej. Ogre pozwala w dość łatwy sposób programować proste gry i aplikacje, a co z tym również idzie grafikę komputerową. Oczywiście, aby tworzyć skomplikowane gry, aplikacje multimedialne na wysokim poziomie trzeba dobrze znać teorie grafiki komputerowej 3D, jak również 2D oraz znać i umieć implementować funkcje silnika graficznego. Dużą zaletą silnika jest to, iż można połączyć go z różnymi bibliotekami fizycznymi, graficznymi, co daje większe możliwości programowania ciekawszych aplikacji. Bibliografia [1] Barkakati N., Grafika i animacja w Windows, Intersoftland Warszawa, 1994. [2] Junker G., Pro OGRE 3D Programming, Apress Berkley, 2006. [3] McCuskey M., Programowanie gier w DirectX, MIKOM Warszawa, 2003. [4] Wright R.S., Sweet M., OpenGl Księga Eksperta, Helion Gliwice, 1999. [5] Ross A., Bousquet M., Projkety i zastosowania 3ds max 5, Helion Gliwice, 2004. [6] Krasicki W., Włodarski L., Analiza matematyczna w zadaniach, część I, PWN Warszawa, 1994.

48 PRZEMYSŁAW DRZEWICKI APPLICATION OF GRAPHICAL ENGINE 3D OGRE IN ENVIRONMENT OF THE VISUAL STUDIO NET 2003 PRZEMYSŁAW DRZEWICKI Abstract. The article presents application, construction and functionalities of graphical engine Ogre in the environment of Visual Studio Net 2003. There were described examples of Ogre library practical application during realization an application, which presents a realistic model of the solar system. The article contains description of functionalities, construction and ways of integration API of Ogre engine in the.net. environment.